File tree 2 files changed +40
-3
lines changed
2 files changed +40
-3
lines changed Original file line number Diff line number Diff line change @@ -141,10 +141,13 @@ function $RouteProvider() {
141
141
* Adds a new route definition to the `$route` service.
142
142
*/
143
143
this . when = function ( path , route ) {
144
+ var routeWithDefaults = angular . extend ( {
145
+ reloadOnSearch : true ,
146
+ caseInsensitiveMatch : this . caseInsensitiveMatch
147
+ } , route ) ;
144
148
routes [ path ] = angular . extend (
145
- { reloadOnSearch : true } ,
146
- route ,
147
- path && pathRegExp ( path , route )
149
+ routeWithDefaults ,
150
+ path && pathRegExp ( path , routeWithDefaults )
148
151
) ;
149
152
150
153
// create redirection for trailing slashes
@@ -162,6 +165,15 @@ function $RouteProvider() {
162
165
return this ;
163
166
} ;
164
167
168
+ /**
169
+ * @ngdoc property
170
+ * @name $routeProvider#caseInsensitiveMatch
171
+ *
172
+ * @property {boolean } caseInsensitiveMatch Value of the `caseInsensitiveMatch` property
173
+ * for newly defined routes. Defaults to `false`.
174
+ */
175
+ this . caseInsensitiveMatch = false ;
176
+
165
177
/**
166
178
* @param path {string} path
167
179
* @param opts {Object} options
Original file line number Diff line number Diff line change @@ -237,6 +237,31 @@ describe('$route', function() {
237
237
} ) ;
238
238
} ) ;
239
239
240
+ it ( 'should allow configuring caseInsensitiveMatch on the route provider level' , function ( ) {
241
+ module ( function ( $routeProvider ) {
242
+ $routeProvider . caseInsensitiveMatch = true ;
243
+ $routeProvider . when ( '/Blank' , { template : 'blank' } ) ;
244
+ $routeProvider . otherwise ( { template : 'other' } ) ;
245
+ } ) ;
246
+ inject ( function ( $route , $location , $rootScope ) {
247
+ $location . path ( '/bLaNk' ) ;
248
+ $rootScope . $digest ( ) ;
249
+ expect ( $route . current . template ) . toBe ( 'blank' ) ;
250
+ } ) ;
251
+ } ) ;
252
+
253
+ it ( 'should allow overriding provider\'s caseInsensitiveMatch setting on the route level' , function ( ) {
254
+ module ( function ( $routeProvider ) {
255
+ $routeProvider . caseInsensitiveMatch = true ;
256
+ $routeProvider . when ( '/Blank' , { template : 'blank' , caseInsensitiveMatch : false } ) ;
257
+ $routeProvider . otherwise ( { template : 'other' } ) ;
258
+ } ) ;
259
+ inject ( function ( $route , $location , $rootScope ) {
260
+ $location . path ( '/bLaNk' ) ;
261
+ $rootScope . $digest ( ) ;
262
+ expect ( $route . current . template ) . toBe ( 'other' ) ;
263
+ } ) ;
264
+ } ) ;
240
265
241
266
it ( 'should not change route when location is canceled' , function ( ) {
242
267
module ( function ( $routeProvider ) {
You can’t perform that action at this time.
0 commit comments