@@ -130,6 +130,68 @@ test('camelCase with pascalCase option', t => {
130130 t . is ( camelCase ( '桑德_在这里。' , { pascalCase : true } ) , '桑德在这里。' ) ;
131131} ) ;
132132
133+ test ( 'camelCase with preserveConsecutiveUppercase option' , t => {
134+ t . is ( camelCase ( 'foo-BAR' , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
135+ t . is ( camelCase ( 'Foo-BAR' , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
136+ t . is ( camelCase ( 'fooBAR' , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
137+ t . is ( camelCase ( 'fooBaR' , { preserveConsecutiveUppercase : true } ) , 'fooBaR' ) ;
138+ t . is ( camelCase ( 'FOÈ-BAR' , { preserveConsecutiveUppercase : true } ) , 'FOÈBAR' ) ;
139+ t . is ( camelCase ( [ 'foo' , 'BAR' ] , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
140+ t . is ( camelCase ( [ 'foo' , '-BAR' ] , { preserveConsecutiveUppercase : true } ) , 'fooBAR' ) ;
141+ t . is ( camelCase ( [ 'foo' , '-BAR' , 'baz' ] , { preserveConsecutiveUppercase : true } ) , 'fooBARBaz' ) ;
142+ t . is ( camelCase ( [ '' , '' ] , { preserveConsecutiveUppercase : true } ) , '' ) ;
143+ t . is ( camelCase ( '--' , { preserveConsecutiveUppercase : true } ) , '' ) ;
144+ t . is ( camelCase ( '' , { preserveConsecutiveUppercase : true } ) , '' ) ;
145+ t . is ( camelCase ( '--__--_--_' , { preserveConsecutiveUppercase : true } ) , '' ) ;
146+ t . is ( camelCase ( [ '---_' , '--' , '' , '-_- ' ] , { preserveConsecutiveUppercase : true } ) , '' ) ;
147+ t . is ( camelCase ( 'foo BAR?' , { preserveConsecutiveUppercase : true } ) , 'fooBAR?' ) ;
148+ t . is ( camelCase ( 'foo BAR!' , { preserveConsecutiveUppercase : true } ) , 'fooBAR!' ) ;
149+ t . is ( camelCase ( 'foo BAR$' , { preserveConsecutiveUppercase : true } ) , 'fooBAR$' ) ;
150+ t . is ( camelCase ( 'foo-BAR#' , { preserveConsecutiveUppercase : true } ) , 'fooBAR#' ) ;
151+ t . is ( camelCase ( 'XMLHttpRequest' , { preserveConsecutiveUppercase : true } ) , 'XMLHttpRequest' ) ;
152+ t . is ( camelCase ( 'AjaxXMLHttpRequest' , { preserveConsecutiveUppercase : true } ) , 'ajaxXMLHttpRequest' ) ;
153+ t . is ( camelCase ( 'Ajax-XMLHttpRequest' , { preserveConsecutiveUppercase : true } ) , 'ajaxXMLHttpRequest' ) ;
154+ t . is ( camelCase ( [ ] , { preserveConsecutiveUppercase : true } ) , '' ) ;
155+ t . is ( camelCase ( 'mGridCOl6@md' , { preserveConsecutiveUppercase : true } ) , 'mGridCOl6@md' ) ;
156+ t . is ( camelCase ( 'A::a' , { preserveConsecutiveUppercase : true } ) , 'a::a' ) ;
157+ t . is ( camelCase ( 'Hello1WORLD' , { preserveConsecutiveUppercase : true } ) , 'hello1WORLD' ) ;
158+ t . is ( camelCase ( 'Hello11WORLD' , { preserveConsecutiveUppercase : true } ) , 'hello11WORLD' ) ;
159+ t . is ( camelCase ( 'РозовыйПушистыйFOOдинорогиf' , { preserveConsecutiveUppercase : true } ) , 'розовыйПушистыйFOOдинорогиf' ) ;
160+ t . is ( camelCase ( '桑德在这里。' , { preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
161+ t . is ( camelCase ( '桑德_在这里。' , { preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
162+ } ) ;
163+
164+ test ( 'camelCase with both pascalCase and preserveConsecutiveUppercase option' , t => {
165+ t . is ( camelCase ( 'foo-BAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
166+ t . is ( camelCase ( 'fooBAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
167+ t . is ( camelCase ( 'fooBaR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBaR' ) ;
168+ t . is ( camelCase ( 'fOÈ-BAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FOÈBAR' ) ;
169+ t . is ( camelCase ( '--foo.BAR' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
170+ t . is ( camelCase ( [ 'Foo' , 'BAR' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
171+ t . is ( camelCase ( [ 'foo' , '-BAR' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR' ) ;
172+ t . is ( camelCase ( [ 'foo' , '-BAR' , 'baz' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBARBaz' ) ;
173+ t . is ( camelCase ( [ '' , '' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
174+ t . is ( camelCase ( '--' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
175+ t . is ( camelCase ( '' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
176+ t . is ( camelCase ( '--__--_--_' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
177+ t . is ( camelCase ( [ '---_' , '--' , '' , '-_- ' ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
178+ t . is ( camelCase ( 'foo BAR?' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR?' ) ;
179+ t . is ( camelCase ( 'foo BAR!' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR!' ) ;
180+ t . is ( camelCase ( 'Foo BAR$' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR$' ) ;
181+ t . is ( camelCase ( 'foo-BAR#' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'FooBAR#' ) ;
182+ t . is ( camelCase ( 'xMLHttpRequest' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'XMLHttpRequest' ) ;
183+ t . is ( camelCase ( 'ajaxXMLHttpRequest' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'AjaxXMLHttpRequest' ) ;
184+ t . is ( camelCase ( 'Ajax-XMLHttpRequest' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'AjaxXMLHttpRequest' ) ;
185+ t . is ( camelCase ( [ ] , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '' ) ;
186+ t . is ( camelCase ( 'mGridCOl6@md' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'MGridCOl6@md' ) ;
187+ t . is ( camelCase ( 'A::a' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'A::a' ) ;
188+ t . is ( camelCase ( 'Hello1WORLD' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'Hello1WORLD' ) ;
189+ t . is ( camelCase ( 'Hello11WORLD' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'Hello11WORLD' ) ;
190+ t . is ( camelCase ( 'pозовыйПушистыйFOOдинорогиf' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , 'PозовыйПушистыйFOOдинорогиf' ) ;
191+ t . is ( camelCase ( '桑德在这里。' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
192+ t . is ( camelCase ( '桑德_在这里。' , { pascalCase : true , preserveConsecutiveUppercase : true } ) , '桑德在这里。' ) ;
193+ } ) ;
194+
133195test ( 'camelCase with locale option' , t => {
134196 t . is ( camelCase ( 'lorem-ipsum' , { locale : 'tr-TR' } ) , 'loremİpsum' ) ;
135197 t . is ( camelCase ( 'lorem-ipsum' , { locale : 'en-EN' } ) , 'loremIpsum' ) ;
0 commit comments