This repository was archived by the owner on Apr 12, 2024. It is now read-only.
File tree 2 files changed +26
-0
lines changed
2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -779,6 +779,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
779
779
return bindings ;
780
780
}
781
781
782
+ function assertFirstLetterIsLowerCased ( name ) {
783
+ var letter = name . charAt ( 0 ) ;
784
+ if ( letter !== letter . toLowerCase ( ) ) {
785
+ throw ngMinErr ( 'badname' , "Directive '{0}' is not a valid name. Make sure the first letter is lowercase" ) ;
786
+ }
787
+ return name ;
788
+ }
789
+
782
790
/**
783
791
* @ngdoc method
784
792
* @name $compileProvider#directive
@@ -797,6 +805,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
797
805
this . directive = function registerDirective ( name , directiveFactory ) {
798
806
assertNotHasOwnProperty ( name , 'directive' ) ;
799
807
if ( isString ( name ) ) {
808
+ assertFirstLetterIsLowerCased ( name ) ;
800
809
assertArg ( directiveFactory , 'directiveFactory' ) ;
801
810
if ( ! hasDirectives . hasOwnProperty ( name ) ) {
802
811
hasDirectives [ name ] = [ ] ;
Original file line number Diff line number Diff line change @@ -147,6 +147,7 @@ describe('$compile', function() {
147
147
148
148
149
149
describe ( 'configuration' , function ( ) {
150
+
150
151
it ( 'should register a directive' , function ( ) {
151
152
module ( function ( ) {
152
153
directive ( 'div' , function ( log ) {
@@ -7430,3 +7431,19 @@ describe('$compile', function() {
7430
7431
} ) ) ;
7431
7432
} ) ;
7432
7433
} ) ;
7434
+
7435
+ describe ( '$compile' , function ( ) {
7436
+ describe ( 'directive' , function ( ) {
7437
+ it ( 'should fail to register a directive' , function ( ) {
7438
+ try {
7439
+ module ( provideLog , function ( $provide , $compileProvider ) {
7440
+ $compileProvider . directive ( 'BadDirectiveName' , function ( log ) {
7441
+ return { } ;
7442
+ } ) ;
7443
+ } ) ;
7444
+ } catch ( e ) {
7445
+ expect ( e ) . toBe ( "Directive 'BadDirectiveName' is not a valid name. Make sure the first letter is lowercase" )
7446
+ }
7447
+ } ) ;
7448
+ } ) ;
7449
+ } ) ;
You can’t perform that action at this time.
0 commit comments