Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 0db573b

Browse files
feat($routeProvider): allow setting caseInsensitiveMatch on the provider
Fixes #6477 Closes #9873
1 parent 5e78af7 commit 0db573b

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/ngRoute/route.js

+12
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ function $RouteProvider() {
146146
if (angular.isUndefined(routeCopy.reloadOnSearch)) {
147147
routeCopy.reloadOnSearch = true;
148148
}
149+
if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) {
150+
routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch;
151+
}
149152
routes[path] = angular.extend(
150153
routeCopy,
151154
path && pathRegExp(path, routeCopy)
@@ -166,6 +169,15 @@ function $RouteProvider() {
166169
return this;
167170
};
168171

172+
/**
173+
* @ngdoc property
174+
* @name $routeProvider#caseInsensitiveMatch
175+
*
176+
* @property {boolean} caseInsensitiveMatch Value of the `caseInsensitiveMatch` property
177+
* for newly defined routes. Defaults to `false`.
178+
*/
179+
this.caseInsensitiveMatch = false;
180+
169181
/**
170182
* @param path {string} path
171183
* @param opts {Object} options

test/ngRoute/routeSpec.js

+25
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,31 @@ describe('$route', function() {
237237
});
238238
});
239239

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+
});
240265

241266
it('should not change route when location is canceled', function() {
242267
module(function($routeProvider) {

0 commit comments

Comments
 (0)