@@ -34,6 +34,11 @@ export function main() {
34
34
expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
35
35
} ) ;
36
36
37
+ it ( 'should detect [] syntax with data- prefix' , ( ) => {
38
+ var results = process ( el ( '<div data-[a]="b"></div>' ) ) ;
39
+ expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
40
+ } ) ;
41
+
37
42
it ( 'should detect [] syntax only if an attribute name starts and ends with []' , ( ) => {
38
43
expect ( process ( el ( '<div z[a]="b"></div>' ) ) [ 0 ] ) . toBe ( null ) ;
39
44
expect ( process ( el ( '<div [a]v="b"></div>' ) ) [ 0 ] ) . toBe ( null ) ;
@@ -44,6 +49,11 @@ export function main() {
44
49
expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
45
50
} ) ;
46
51
52
+ it ( 'should detect bind- syntax with data- prefix' , ( ) => {
53
+ var results = process ( el ( '<div data-bind-a="b"></div>' ) ) ;
54
+ expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
55
+ } ) ;
56
+
47
57
it ( 'should detect bind- syntax only if an attribute name starts with bind' ,
48
58
( ) => { expect ( process ( el ( '<div _bind-a="b"></div>' ) ) [ 0 ] ) . toEqual ( null ) ; } ) ;
49
59
@@ -52,6 +62,11 @@ export function main() {
52
62
expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( '{{b}}' ) ;
53
63
} ) ;
54
64
65
+ it ( 'should detect interpolation syntax with data- prefix' , ( ) => {
66
+ var results = process ( el ( '<div data-a="{{b}}"></div>' ) ) ;
67
+ expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( '{{b}}' ) ;
68
+ } ) ;
69
+
55
70
it ( 'should store property setters as camel case' , ( ) => {
56
71
var element = el ( '<div bind-some-prop="1">' ) ;
57
72
var results = process ( element ) ;
@@ -63,6 +78,11 @@ export function main() {
63
78
expect ( results [ 0 ] . variableBindings . get ( 'b' ) ) . toEqual ( 'a' ) ;
64
79
} ) ;
65
80
81
+ it ( 'should detect var- syntax with data- prefix' , ( ) => {
82
+ var results = process ( el ( '<template data-var-a="b"></template>' ) ) ;
83
+ expect ( results [ 0 ] . variableBindings . get ( 'b' ) ) . toEqual ( 'a' ) ;
84
+ } ) ;
85
+
66
86
it ( 'should store variable binding for a template element on the nestedProtoView' , ( ) => {
67
87
var results = process ( el ( '<template var-george="washington"></p>' ) , true ) ;
68
88
expect ( results [ 0 ] . variableBindings ) . toEqual ( EMPTY_MAP ) ;
@@ -113,6 +133,13 @@ export function main() {
113
133
expect ( eventBinding . fullName ) . toEqual ( 'click[]' ) ;
114
134
} ) ;
115
135
136
+ it ( 'should detect () syntax with data- prefix' , ( ) => {
137
+ var results = process ( el ( '<div data-(click)="b()"></div>' ) ) ;
138
+ var eventBinding = results [ 0 ] . eventBindings [ 0 ] ;
139
+ expect ( eventBinding . source . source ) . toEqual ( 'b()' ) ;
140
+ expect ( eventBinding . fullName ) . toEqual ( 'click' ) ;
141
+ } ) ;
142
+
116
143
it ( 'should detect () syntax only if an attribute name starts and ends with ()' , ( ) => {
117
144
expect ( process ( el ( '<div z(a)="b()"></div>' ) ) [ 0 ] ) . toEqual ( null ) ;
118
145
expect ( process ( el ( '<div (a)v="b()"></div>' ) ) [ 0 ] ) . toEqual ( null ) ;
@@ -132,6 +159,13 @@ export function main() {
132
159
expect ( eventBinding . fullName ) . toEqual ( 'click' ) ;
133
160
} ) ;
134
161
162
+ it ( 'should detect on- syntax with data- prefix' , ( ) => {
163
+ var results = process ( el ( '<div data-on-click="b()"></div>' ) ) ;
164
+ var eventBinding = results [ 0 ] . eventBindings [ 0 ] ;
165
+ expect ( eventBinding . source . source ) . toEqual ( 'b()' ) ;
166
+ expect ( eventBinding . fullName ) . toEqual ( 'click' ) ;
167
+ } ) ;
168
+
135
169
it ( 'should parse event handlers using on- syntax as actions' , ( ) => {
136
170
var results = process ( el ( '<div on-click="foo=bar"></div>' ) ) ;
137
171
var eventBinding = results [ 0 ] . eventBindings [ 0 ] ;
@@ -157,11 +191,23 @@ export function main() {
157
191
expect ( results [ 0 ] . eventBindings [ 0 ] . source . source ) . toEqual ( 'b=$event' ) ;
158
192
} ) ;
159
193
194
+ it ( 'should detect [()] syntax with data- prefix' , ( ) => {
195
+ var results = process ( el ( '<div data-[(a)]="b"></div>' ) ) ;
196
+ expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
197
+ expect ( results [ 0 ] . eventBindings [ 0 ] . source . source ) . toEqual ( 'b=$event' ) ;
198
+ } ) ;
199
+
160
200
it ( 'should detect bindon- syntax' , ( ) => {
161
201
var results = process ( el ( '<div bindon-a="b"></div>' ) ) ;
162
202
expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
163
203
expect ( results [ 0 ] . eventBindings [ 0 ] . source . source ) . toEqual ( 'b=$event' ) ;
164
204
} ) ;
205
+
206
+ it ( 'should detect bindon- syntax with data- prefix' , ( ) => {
207
+ var results = process ( el ( '<div data-bindon-a="b"></div>' ) ) ;
208
+ expect ( results [ 0 ] . propertyBindings . get ( 'a' ) . source ) . toEqual ( 'b' ) ;
209
+ expect ( results [ 0 ] . eventBindings [ 0 ] . source . source ) . toEqual ( 'b=$event' ) ;
210
+ } ) ;
165
211
} ) ;
166
212
}
167
213
0 commit comments