This repository was archived by the owner on Apr 12, 2024. It is now read-only.
File tree 2 files changed +19
-1
lines changed
2 files changed +19
-1
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 assertValidDirectiveName ( name ) {
783
+ var letter = name . charAt ( 0 ) ;
784
+ if ( letter && ( letter !== lowercase ( letter ) ) ) {
785
+ throw ngMinErr ( 'badname' , "Directive '{0}' is invalid. The first letter of a directive must be a lowercase letter" ) ;
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
+ assertValidDirectiveName ( 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,15 @@ describe('$compile', function() {
147
147
148
148
149
149
describe ( 'configuration' , function ( ) {
150
+
151
+ it ( 'should fail to register a directive that does not start with a lowercase letter' , function ( ) {
152
+ module ( function ( $provide , $compileProvider ) {
153
+ expect ( $compileProvider . directive ( 'BadDirectiveName' , function ( ) {
154
+ return { } ;
155
+ } ) ) . toThrowMinErr ( 'badname' , "Directive 'BadDirectiveName' is invalid. The first letter of a directive must be a lowercase letter" ) ;
156
+ } ) ;
157
+ } ) ;
158
+
150
159
it ( 'should register a directive' , function ( ) {
151
160
module ( function ( ) {
152
161
directive ( 'div' , function ( log ) {
@@ -7429,4 +7438,4 @@ describe('$compile', function() {
7429
7438
expect ( element . hasClass ( 'fire' ) ) . toBe ( true ) ;
7430
7439
} ) ) ;
7431
7440
} ) ;
7432
- } ) ;
7441
+ } ) ;
You can’t perform that action at this time.
0 commit comments