2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetAttributeInfoForCommonAttributes12.gold:
--------------------------------------------------------------------------------
1 | Attributes: 96
2 | data-ng-app (IMPLIED - )
3 | data-ng-bind (IMPLIED - )
4 | data-ng-bind-html (IMPLIED - )
5 | data-ng-bind-template (IMPLIED - )
6 | data-ng-class (IMPLIED - )
7 | data-ng-class-even (IMPLIED - )
8 | data-ng-class-odd (IMPLIED - )
9 | data-ng-click (IMPLIED - )
10 | data-ng-cloak (IMPLIED - )
11 | data-ng-controller (IMPLIED - )
12 | data-ng-dblclick (IMPLIED - )
13 | data-ng-form (IMPLIED - )
14 | data-ng-hide (IMPLIED - )
15 | data-ng-if (IMPLIED - )
16 | data-ng-include (IMPLIED - )
17 | data-ng-init (IMPLIED - )
18 | data-ng-keydown (IMPLIED - )
19 | data-ng-keypress (IMPLIED - )
20 | data-ng-keyup (IMPLIED - )
21 | data-ng-mousedown (IMPLIED - )
22 | data-ng-mouseenter (IMPLIED - )
23 | data-ng-mouseleave (IMPLIED - )
24 | data-ng-mousemove (IMPLIED - )
25 | data-ng-mouseover (IMPLIED - )
26 | data-ng-mouseup (IMPLIED - )
27 | data-ng-non-bindable (IMPLIED - )
28 | data-ng-pluralize (IMPLIED - )
29 | data-ng-repeat (IMPLIED - )
30 | data-ng-show (IMPLIED - )
31 | data-ng-style (IMPLIED - )
32 | data-ng-switch (IMPLIED - )
33 | data-ng-transclude (IMPLIED - )
34 | ng-app (IMPLIED - )
35 | ng-bind (IMPLIED - )
36 | ng-bind-html (IMPLIED - )
37 | ng-bind-template (IMPLIED - )
38 | ng-class (IMPLIED - )
39 | ng-class-even (IMPLIED - )
40 | ng-class-odd (IMPLIED - )
41 | ng-click (IMPLIED - )
42 | ng-cloak (IMPLIED - )
43 | ng-controller (IMPLIED - )
44 | ng-dblclick (IMPLIED - )
45 | ng-form (IMPLIED - )
46 | ng-hide (IMPLIED - )
47 | ng-if (IMPLIED - )
48 | ng-include (IMPLIED - )
49 | ng-init (IMPLIED - )
50 | ng-keydown (IMPLIED - )
51 | ng-keypress (IMPLIED - )
52 | ng-keyup (IMPLIED - )
53 | ng-mousedown (IMPLIED - )
54 | ng-mouseenter (IMPLIED - )
55 | ng-mouseleave (IMPLIED - )
56 | ng-mousemove (IMPLIED - )
57 | ng-mouseover (IMPLIED - )
58 | ng-mouseup (IMPLIED - )
59 | ng-non-bindable (IMPLIED - )
60 | ng-pluralize (IMPLIED - )
61 | ng-repeat (IMPLIED - )
62 | ng-show (IMPLIED - )
63 | ng-style (IMPLIED - )
64 | ng-switch (IMPLIED - )
65 | ng-transclude (IMPLIED - )
66 | x-ng-app (IMPLIED - )
67 | x-ng-bind (IMPLIED - )
68 | x-ng-bind-html (IMPLIED - )
69 | x-ng-bind-template (IMPLIED - )
70 | x-ng-class (IMPLIED - )
71 | x-ng-class-even (IMPLIED - )
72 | x-ng-class-odd (IMPLIED - )
73 | x-ng-click (IMPLIED - )
74 | x-ng-cloak (IMPLIED - )
75 | x-ng-controller (IMPLIED - )
76 | x-ng-dblclick (IMPLIED - )
77 | x-ng-form (IMPLIED - )
78 | x-ng-hide (IMPLIED - )
79 | x-ng-if (IMPLIED - )
80 | x-ng-include (IMPLIED - )
81 | x-ng-init (IMPLIED - )
82 | x-ng-keydown (IMPLIED - )
83 | x-ng-keypress (IMPLIED - )
84 | x-ng-keyup (IMPLIED - )
85 | x-ng-mousedown (IMPLIED - )
86 | x-ng-mouseenter (IMPLIED - )
87 | x-ng-mouseleave (IMPLIED - )
88 | x-ng-mousemove (IMPLIED - )
89 | x-ng-mouseover (IMPLIED - )
90 | x-ng-mouseup (IMPLIED - )
91 | x-ng-non-bindable (IMPLIED - )
92 | x-ng-pluralize (IMPLIED - )
93 | x-ng-repeat (IMPLIED - )
94 | x-ng-show (IMPLIED - )
95 | x-ng-style (IMPLIED - )
96 | x-ng-switch (IMPLIED - )
97 | x-ng-transclude (IMPLIED - )
98 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetAttributeInfoForCommonAttributes13.gold:
--------------------------------------------------------------------------------
1 | Attributes: 99
2 | data-ng-app (IMPLIED - )
3 | data-ng-bind (IMPLIED - )
4 | data-ng-bind-html (IMPLIED - )
5 | data-ng-bind-template (IMPLIED - )
6 | data-ng-class (IMPLIED - )
7 | data-ng-class-even (IMPLIED - )
8 | data-ng-class-odd (IMPLIED - )
9 | data-ng-click (IMPLIED - )
10 | data-ng-cloak (IMPLIED - )
11 | data-ng-controller (IMPLIED - )
12 | data-ng-dblclick (IMPLIED - )
13 | data-ng-form (IMPLIED - )
14 | data-ng-hide (IMPLIED - )
15 | data-ng-if (IMPLIED - )
16 | data-ng-include (IMPLIED - )
17 | data-ng-init (IMPLIED - )
18 | data-ng-keydown (IMPLIED - )
19 | data-ng-keypress (IMPLIED - )
20 | data-ng-keyup (IMPLIED - )
21 | data-ng-model-options (IMPLIED - )
22 | data-ng-mousedown (IMPLIED - )
23 | data-ng-mouseenter (IMPLIED - )
24 | data-ng-mouseleave (IMPLIED - )
25 | data-ng-mousemove (IMPLIED - )
26 | data-ng-mouseover (IMPLIED - )
27 | data-ng-mouseup (IMPLIED - )
28 | data-ng-non-bindable (IMPLIED - )
29 | data-ng-pluralize (IMPLIED - )
30 | data-ng-repeat (IMPLIED - )
31 | data-ng-show (IMPLIED - )
32 | data-ng-style (IMPLIED - )
33 | data-ng-switch (IMPLIED - )
34 | data-ng-transclude (IMPLIED - )
35 | ng-app (IMPLIED - )
36 | ng-bind (IMPLIED - )
37 | ng-bind-html (IMPLIED - )
38 | ng-bind-template (IMPLIED - )
39 | ng-class (IMPLIED - )
40 | ng-class-even (IMPLIED - )
41 | ng-class-odd (IMPLIED - )
42 | ng-click (IMPLIED - )
43 | ng-cloak (IMPLIED - )
44 | ng-controller (IMPLIED - )
45 | ng-dblclick (IMPLIED - )
46 | ng-form (IMPLIED - )
47 | ng-hide (IMPLIED - )
48 | ng-if (IMPLIED - )
49 | ng-include (IMPLIED - )
50 | ng-init (IMPLIED - )
51 | ng-keydown (IMPLIED - )
52 | ng-keypress (IMPLIED - )
53 | ng-keyup (IMPLIED - )
54 | ng-model-options (IMPLIED - )
55 | ng-mousedown (IMPLIED - )
56 | ng-mouseenter (IMPLIED - )
57 | ng-mouseleave (IMPLIED - )
58 | ng-mousemove (IMPLIED - )
59 | ng-mouseover (IMPLIED - )
60 | ng-mouseup (IMPLIED - )
61 | ng-non-bindable (IMPLIED - )
62 | ng-pluralize (IMPLIED - )
63 | ng-repeat (IMPLIED - )
64 | ng-show (IMPLIED - )
65 | ng-style (IMPLIED - )
66 | ng-switch (IMPLIED - )
67 | ng-transclude (IMPLIED - )
68 | x-ng-app (IMPLIED - )
69 | x-ng-bind (IMPLIED - )
70 | x-ng-bind-html (IMPLIED - )
71 | x-ng-bind-template (IMPLIED - )
72 | x-ng-class (IMPLIED - )
73 | x-ng-class-even (IMPLIED - )
74 | x-ng-class-odd (IMPLIED - )
75 | x-ng-click (IMPLIED - )
76 | x-ng-cloak (IMPLIED - )
77 | x-ng-controller (IMPLIED - )
78 | x-ng-dblclick (IMPLIED - )
79 | x-ng-form (IMPLIED - )
80 | x-ng-hide (IMPLIED - )
81 | x-ng-if (IMPLIED - )
82 | x-ng-include (IMPLIED - )
83 | x-ng-init (IMPLIED - )
84 | x-ng-keydown (IMPLIED - )
85 | x-ng-keypress (IMPLIED - )
86 | x-ng-keyup (IMPLIED - )
87 | x-ng-model-options (IMPLIED - )
88 | x-ng-mousedown (IMPLIED - )
89 | x-ng-mouseenter (IMPLIED - )
90 | x-ng-mouseleave (IMPLIED - )
91 | x-ng-mousemove (IMPLIED - )
92 | x-ng-mouseover (IMPLIED - )
93 | x-ng-mouseup (IMPLIED - )
94 | x-ng-non-bindable (IMPLIED - )
95 | x-ng-pluralize (IMPLIED - )
96 | x-ng-repeat (IMPLIED - )
97 | x-ng-show (IMPLIED - )
98 | x-ng-style (IMPLIED - )
99 | x-ng-switch (IMPLIED - )
100 | x-ng-transclude (IMPLIED - )
101 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetAttributeInfoForCommonAttributes14.gold:
--------------------------------------------------------------------------------
1 | Attributes: 105
2 | data-ng-app (IMPLIED - )
3 | data-ng-bind (IMPLIED - )
4 | data-ng-bind-html (IMPLIED - )
5 | data-ng-bind-template (IMPLIED - )
6 | data-ng-class (IMPLIED - )
7 | data-ng-class-even (IMPLIED - )
8 | data-ng-class-odd (IMPLIED - )
9 | data-ng-click (IMPLIED - )
10 | data-ng-cloak (IMPLIED - )
11 | data-ng-controller (IMPLIED - )
12 | data-ng-dblclick (IMPLIED - )
13 | data-ng-form (IMPLIED - )
14 | data-ng-hide (IMPLIED - )
15 | data-ng-if (IMPLIED - )
16 | data-ng-include (IMPLIED - )
17 | data-ng-init (IMPLIED - )
18 | data-ng-jq (IMPLIED - )
19 | data-ng-keydown (IMPLIED - )
20 | data-ng-keypress (IMPLIED - )
21 | data-ng-keyup (IMPLIED - )
22 | data-ng-model-options (IMPLIED - )
23 | data-ng-mousedown (IMPLIED - )
24 | data-ng-mouseenter (IMPLIED - )
25 | data-ng-mouseleave (IMPLIED - )
26 | data-ng-mousemove (IMPLIED - )
27 | data-ng-mouseover (IMPLIED - )
28 | data-ng-mouseup (IMPLIED - )
29 | data-ng-non-bindable (IMPLIED - )
30 | data-ng-options (IMPLIED - )
31 | data-ng-pluralize (IMPLIED - )
32 | data-ng-repeat (IMPLIED - )
33 | data-ng-show (IMPLIED - )
34 | data-ng-style (IMPLIED - )
35 | data-ng-switch (IMPLIED - )
36 | data-ng-transclude (IMPLIED - )
37 | ng-app (IMPLIED - )
38 | ng-bind (IMPLIED - )
39 | ng-bind-html (IMPLIED - )
40 | ng-bind-template (IMPLIED - )
41 | ng-class (IMPLIED - )
42 | ng-class-even (IMPLIED - )
43 | ng-class-odd (IMPLIED - )
44 | ng-click (IMPLIED - )
45 | ng-cloak (IMPLIED - )
46 | ng-controller (IMPLIED - )
47 | ng-dblclick (IMPLIED - )
48 | ng-form (IMPLIED - )
49 | ng-hide (IMPLIED - )
50 | ng-if (IMPLIED - )
51 | ng-include (IMPLIED - )
52 | ng-init (IMPLIED - )
53 | ng-jq (IMPLIED - )
54 | ng-keydown (IMPLIED - )
55 | ng-keypress (IMPLIED - )
56 | ng-keyup (IMPLIED - )
57 | ng-model-options (IMPLIED - )
58 | ng-mousedown (IMPLIED - )
59 | ng-mouseenter (IMPLIED - )
60 | ng-mouseleave (IMPLIED - )
61 | ng-mousemove (IMPLIED - )
62 | ng-mouseover (IMPLIED - )
63 | ng-mouseup (IMPLIED - )
64 | ng-non-bindable (IMPLIED - )
65 | ng-options (IMPLIED - )
66 | ng-pluralize (IMPLIED - )
67 | ng-repeat (IMPLIED - )
68 | ng-show (IMPLIED - )
69 | ng-style (IMPLIED - )
70 | ng-switch (IMPLIED - )
71 | ng-transclude (IMPLIED - )
72 | x-ng-app (IMPLIED - )
73 | x-ng-bind (IMPLIED - )
74 | x-ng-bind-html (IMPLIED - )
75 | x-ng-bind-template (IMPLIED - )
76 | x-ng-class (IMPLIED - )
77 | x-ng-class-even (IMPLIED - )
78 | x-ng-class-odd (IMPLIED - )
79 | x-ng-click (IMPLIED - )
80 | x-ng-cloak (IMPLIED - )
81 | x-ng-controller (IMPLIED - )
82 | x-ng-dblclick (IMPLIED - )
83 | x-ng-form (IMPLIED - )
84 | x-ng-hide (IMPLIED - )
85 | x-ng-if (IMPLIED - )
86 | x-ng-include (IMPLIED - )
87 | x-ng-init (IMPLIED - )
88 | x-ng-jq (IMPLIED - )
89 | x-ng-keydown (IMPLIED - )
90 | x-ng-keypress (IMPLIED - )
91 | x-ng-keyup (IMPLIED - )
92 | x-ng-model-options (IMPLIED - )
93 | x-ng-mousedown (IMPLIED - )
94 | x-ng-mouseenter (IMPLIED - )
95 | x-ng-mouseleave (IMPLIED - )
96 | x-ng-mousemove (IMPLIED - )
97 | x-ng-mouseover (IMPLIED - )
98 | x-ng-mouseup (IMPLIED - )
99 | x-ng-non-bindable (IMPLIED - )
100 | x-ng-options (IMPLIED - )
101 | x-ng-pluralize (IMPLIED - )
102 | x-ng-repeat (IMPLIED - )
103 | x-ng-show (IMPLIED - )
104 | x-ng-style (IMPLIED - )
105 | x-ng-switch (IMPLIED - )
106 | x-ng-transclude (IMPLIED - )
107 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetCommonAttributesSymbolTable12.gold:
--------------------------------------------------------------------------------
1 | Symbols: 96
2 | data-ng-app (CDATA)
3 | data-ng-bind (CDATA)
4 | data-ng-bind-html (CDATA)
5 | data-ng-bind-template (CDATA)
6 | data-ng-class (CDATA)
7 | data-ng-class-even (CDATA)
8 | data-ng-class-odd (CDATA)
9 | data-ng-click (CDATA)
10 | data-ng-cloak (CDATA)
11 | data-ng-controller (CDATA)
12 | data-ng-dblclick (CDATA)
13 | data-ng-form (CDATA)
14 | data-ng-hide (CDATA)
15 | data-ng-if (CDATA)
16 | data-ng-include (CDATA)
17 | data-ng-init (CDATA)
18 | data-ng-keydown (CDATA)
19 | data-ng-keypress (CDATA)
20 | data-ng-keyup (CDATA)
21 | data-ng-mousedown (CDATA)
22 | data-ng-mouseenter (CDATA)
23 | data-ng-mouseleave (CDATA)
24 | data-ng-mousemove (CDATA)
25 | data-ng-mouseover (CDATA)
26 | data-ng-mouseup (CDATA)
27 | data-ng-non-bindable (CDATA)
28 | data-ng-pluralize (CDATA)
29 | data-ng-repeat (CDATA)
30 | data-ng-show (CDATA)
31 | data-ng-style (CDATA)
32 | data-ng-switch (CDATA)
33 | data-ng-transclude (CDATA)
34 | ng-app (CDATA)
35 | ng-bind (CDATA)
36 | ng-bind-html (CDATA)
37 | ng-bind-template (CDATA)
38 | ng-class (CDATA)
39 | ng-class-even (CDATA)
40 | ng-class-odd (CDATA)
41 | ng-click (CDATA)
42 | ng-cloak (CDATA)
43 | ng-controller (CDATA)
44 | ng-dblclick (CDATA)
45 | ng-form (CDATA)
46 | ng-hide (CDATA)
47 | ng-if (CDATA)
48 | ng-include (CDATA)
49 | ng-init (CDATA)
50 | ng-keydown (CDATA)
51 | ng-keypress (CDATA)
52 | ng-keyup (CDATA)
53 | ng-mousedown (CDATA)
54 | ng-mouseenter (CDATA)
55 | ng-mouseleave (CDATA)
56 | ng-mousemove (CDATA)
57 | ng-mouseover (CDATA)
58 | ng-mouseup (CDATA)
59 | ng-non-bindable (CDATA)
60 | ng-pluralize (CDATA)
61 | ng-repeat (CDATA)
62 | ng-show (CDATA)
63 | ng-style (CDATA)
64 | ng-switch (CDATA)
65 | ng-transclude (CDATA)
66 | x-ng-app (CDATA)
67 | x-ng-bind (CDATA)
68 | x-ng-bind-html (CDATA)
69 | x-ng-bind-template (CDATA)
70 | x-ng-class (CDATA)
71 | x-ng-class-even (CDATA)
72 | x-ng-class-odd (CDATA)
73 | x-ng-click (CDATA)
74 | x-ng-cloak (CDATA)
75 | x-ng-controller (CDATA)
76 | x-ng-dblclick (CDATA)
77 | x-ng-form (CDATA)
78 | x-ng-hide (CDATA)
79 | x-ng-if (CDATA)
80 | x-ng-include (CDATA)
81 | x-ng-init (CDATA)
82 | x-ng-keydown (CDATA)
83 | x-ng-keypress (CDATA)
84 | x-ng-keyup (CDATA)
85 | x-ng-mousedown (CDATA)
86 | x-ng-mouseenter (CDATA)
87 | x-ng-mouseleave (CDATA)
88 | x-ng-mousemove (CDATA)
89 | x-ng-mouseover (CDATA)
90 | x-ng-mouseup (CDATA)
91 | x-ng-non-bindable (CDATA)
92 | x-ng-pluralize (CDATA)
93 | x-ng-repeat (CDATA)
94 | x-ng-show (CDATA)
95 | x-ng-style (CDATA)
96 | x-ng-switch (CDATA)
97 | x-ng-transclude (CDATA)
98 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetCommonAttributesSymbolTable13.gold:
--------------------------------------------------------------------------------
1 | Symbols: 99
2 | data-ng-app (CDATA)
3 | data-ng-bind (CDATA)
4 | data-ng-bind-html (CDATA)
5 | data-ng-bind-template (CDATA)
6 | data-ng-class (CDATA)
7 | data-ng-class-even (CDATA)
8 | data-ng-class-odd (CDATA)
9 | data-ng-click (CDATA)
10 | data-ng-cloak (CDATA)
11 | data-ng-controller (CDATA)
12 | data-ng-dblclick (CDATA)
13 | data-ng-form (CDATA)
14 | data-ng-hide (CDATA)
15 | data-ng-if (CDATA)
16 | data-ng-include (CDATA)
17 | data-ng-init (CDATA)
18 | data-ng-keydown (CDATA)
19 | data-ng-keypress (CDATA)
20 | data-ng-keyup (CDATA)
21 | data-ng-model-options (CDATA)
22 | data-ng-mousedown (CDATA)
23 | data-ng-mouseenter (CDATA)
24 | data-ng-mouseleave (CDATA)
25 | data-ng-mousemove (CDATA)
26 | data-ng-mouseover (CDATA)
27 | data-ng-mouseup (CDATA)
28 | data-ng-non-bindable (CDATA)
29 | data-ng-pluralize (CDATA)
30 | data-ng-repeat (CDATA)
31 | data-ng-show (CDATA)
32 | data-ng-style (CDATA)
33 | data-ng-switch (CDATA)
34 | data-ng-transclude (CDATA)
35 | ng-app (CDATA)
36 | ng-bind (CDATA)
37 | ng-bind-html (CDATA)
38 | ng-bind-template (CDATA)
39 | ng-class (CDATA)
40 | ng-class-even (CDATA)
41 | ng-class-odd (CDATA)
42 | ng-click (CDATA)
43 | ng-cloak (CDATA)
44 | ng-controller (CDATA)
45 | ng-dblclick (CDATA)
46 | ng-form (CDATA)
47 | ng-hide (CDATA)
48 | ng-if (CDATA)
49 | ng-include (CDATA)
50 | ng-init (CDATA)
51 | ng-keydown (CDATA)
52 | ng-keypress (CDATA)
53 | ng-keyup (CDATA)
54 | ng-model-options (CDATA)
55 | ng-mousedown (CDATA)
56 | ng-mouseenter (CDATA)
57 | ng-mouseleave (CDATA)
58 | ng-mousemove (CDATA)
59 | ng-mouseover (CDATA)
60 | ng-mouseup (CDATA)
61 | ng-non-bindable (CDATA)
62 | ng-pluralize (CDATA)
63 | ng-repeat (CDATA)
64 | ng-show (CDATA)
65 | ng-style (CDATA)
66 | ng-switch (CDATA)
67 | ng-transclude (CDATA)
68 | x-ng-app (CDATA)
69 | x-ng-bind (CDATA)
70 | x-ng-bind-html (CDATA)
71 | x-ng-bind-template (CDATA)
72 | x-ng-class (CDATA)
73 | x-ng-class-even (CDATA)
74 | x-ng-class-odd (CDATA)
75 | x-ng-click (CDATA)
76 | x-ng-cloak (CDATA)
77 | x-ng-controller (CDATA)
78 | x-ng-dblclick (CDATA)
79 | x-ng-form (CDATA)
80 | x-ng-hide (CDATA)
81 | x-ng-if (CDATA)
82 | x-ng-include (CDATA)
83 | x-ng-init (CDATA)
84 | x-ng-keydown (CDATA)
85 | x-ng-keypress (CDATA)
86 | x-ng-keyup (CDATA)
87 | x-ng-model-options (CDATA)
88 | x-ng-mousedown (CDATA)
89 | x-ng-mouseenter (CDATA)
90 | x-ng-mouseleave (CDATA)
91 | x-ng-mousemove (CDATA)
92 | x-ng-mouseover (CDATA)
93 | x-ng-mouseup (CDATA)
94 | x-ng-non-bindable (CDATA)
95 | x-ng-pluralize (CDATA)
96 | x-ng-repeat (CDATA)
97 | x-ng-show (CDATA)
98 | x-ng-style (CDATA)
99 | x-ng-switch (CDATA)
100 | x-ng-transclude (CDATA)
101 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetCommonAttributesSymbolTable14.gold:
--------------------------------------------------------------------------------
1 | Symbols: 105
2 | data-ng-app (CDATA)
3 | data-ng-bind (CDATA)
4 | data-ng-bind-html (CDATA)
5 | data-ng-bind-template (CDATA)
6 | data-ng-class (CDATA)
7 | data-ng-class-even (CDATA)
8 | data-ng-class-odd (CDATA)
9 | data-ng-click (CDATA)
10 | data-ng-cloak (CDATA)
11 | data-ng-controller (CDATA)
12 | data-ng-dblclick (CDATA)
13 | data-ng-form (CDATA)
14 | data-ng-hide (CDATA)
15 | data-ng-if (CDATA)
16 | data-ng-include (CDATA)
17 | data-ng-init (CDATA)
18 | data-ng-jq (CDATA)
19 | data-ng-keydown (CDATA)
20 | data-ng-keypress (CDATA)
21 | data-ng-keyup (CDATA)
22 | data-ng-model-options (CDATA)
23 | data-ng-mousedown (CDATA)
24 | data-ng-mouseenter (CDATA)
25 | data-ng-mouseleave (CDATA)
26 | data-ng-mousemove (CDATA)
27 | data-ng-mouseover (CDATA)
28 | data-ng-mouseup (CDATA)
29 | data-ng-non-bindable (CDATA)
30 | data-ng-options (CDATA)
31 | data-ng-pluralize (CDATA)
32 | data-ng-repeat (CDATA)
33 | data-ng-show (CDATA)
34 | data-ng-style (CDATA)
35 | data-ng-switch (CDATA)
36 | data-ng-transclude (CDATA)
37 | ng-app (CDATA)
38 | ng-bind (CDATA)
39 | ng-bind-html (CDATA)
40 | ng-bind-template (CDATA)
41 | ng-class (CDATA)
42 | ng-class-even (CDATA)
43 | ng-class-odd (CDATA)
44 | ng-click (CDATA)
45 | ng-cloak (CDATA)
46 | ng-controller (CDATA)
47 | ng-dblclick (CDATA)
48 | ng-form (CDATA)
49 | ng-hide (CDATA)
50 | ng-if (CDATA)
51 | ng-include (CDATA)
52 | ng-init (CDATA)
53 | ng-jq (CDATA)
54 | ng-keydown (CDATA)
55 | ng-keypress (CDATA)
56 | ng-keyup (CDATA)
57 | ng-model-options (CDATA)
58 | ng-mousedown (CDATA)
59 | ng-mouseenter (CDATA)
60 | ng-mouseleave (CDATA)
61 | ng-mousemove (CDATA)
62 | ng-mouseover (CDATA)
63 | ng-mouseup (CDATA)
64 | ng-non-bindable (CDATA)
65 | ng-options (CDATA)
66 | ng-pluralize (CDATA)
67 | ng-repeat (CDATA)
68 | ng-show (CDATA)
69 | ng-style (CDATA)
70 | ng-switch (CDATA)
71 | ng-transclude (CDATA)
72 | x-ng-app (CDATA)
73 | x-ng-bind (CDATA)
74 | x-ng-bind-html (CDATA)
75 | x-ng-bind-template (CDATA)
76 | x-ng-class (CDATA)
77 | x-ng-class-even (CDATA)
78 | x-ng-class-odd (CDATA)
79 | x-ng-click (CDATA)
80 | x-ng-cloak (CDATA)
81 | x-ng-controller (CDATA)
82 | x-ng-dblclick (CDATA)
83 | x-ng-form (CDATA)
84 | x-ng-hide (CDATA)
85 | x-ng-if (CDATA)
86 | x-ng-include (CDATA)
87 | x-ng-init (CDATA)
88 | x-ng-jq (CDATA)
89 | x-ng-keydown (CDATA)
90 | x-ng-keypress (CDATA)
91 | x-ng-keyup (CDATA)
92 | x-ng-model-options (CDATA)
93 | x-ng-mousedown (CDATA)
94 | x-ng-mouseenter (CDATA)
95 | x-ng-mouseleave (CDATA)
96 | x-ng-mousemove (CDATA)
97 | x-ng-mouseover (CDATA)
98 | x-ng-mouseup (CDATA)
99 | x-ng-non-bindable (CDATA)
100 | x-ng-options (CDATA)
101 | x-ng-pluralize (CDATA)
102 | x-ng-repeat (CDATA)
103 | x-ng-show (CDATA)
104 | x-ng-style (CDATA)
105 | x-ng-switch (CDATA)
106 | x-ng-transclude (CDATA)
107 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetTagForAngularTag12.gold:
--------------------------------------------------------------------------------
1 | ng-include
2 | Own attributes: 2
3 | autoscroll
4 | onload
5 | Inherited attributes: 96
6 | data-ng-app
7 | data-ng-bind
8 | data-ng-bind-html
9 | data-ng-bind-template
10 | data-ng-class
11 | data-ng-class-even
12 | data-ng-class-odd
13 | data-ng-click
14 | data-ng-cloak
15 | data-ng-controller
16 | data-ng-dblclick
17 | data-ng-form
18 | data-ng-hide
19 | data-ng-if
20 | data-ng-include
21 | data-ng-init
22 | data-ng-keydown
23 | data-ng-keypress
24 | data-ng-keyup
25 | data-ng-mousedown
26 | data-ng-mouseenter
27 | data-ng-mouseleave
28 | data-ng-mousemove
29 | data-ng-mouseover
30 | data-ng-mouseup
31 | data-ng-non-bindable
32 | data-ng-pluralize
33 | data-ng-repeat
34 | data-ng-show
35 | data-ng-style
36 | data-ng-switch
37 | data-ng-transclude
38 | ng-app
39 | ng-bind
40 | ng-bind-html
41 | ng-bind-template
42 | ng-class
43 | ng-class-even
44 | ng-class-odd
45 | ng-click
46 | ng-cloak
47 | ng-controller
48 | ng-dblclick
49 | ng-form
50 | ng-hide
51 | ng-if
52 | ng-include
53 | ng-init
54 | ng-keydown
55 | ng-keypress
56 | ng-keyup
57 | ng-mousedown
58 | ng-mouseenter
59 | ng-mouseleave
60 | ng-mousemove
61 | ng-mouseover
62 | ng-mouseup
63 | ng-non-bindable
64 | ng-pluralize
65 | ng-repeat
66 | ng-show
67 | ng-style
68 | ng-switch
69 | ng-transclude
70 | x-ng-app
71 | x-ng-bind
72 | x-ng-bind-html
73 | x-ng-bind-template
74 | x-ng-class
75 | x-ng-class-even
76 | x-ng-class-odd
77 | x-ng-click
78 | x-ng-cloak
79 | x-ng-controller
80 | x-ng-dblclick
81 | x-ng-form
82 | x-ng-hide
83 | x-ng-if
84 | x-ng-include
85 | x-ng-init
86 | x-ng-keydown
87 | x-ng-keypress
88 | x-ng-keyup
89 | x-ng-mousedown
90 | x-ng-mouseenter
91 | x-ng-mouseleave
92 | x-ng-mousemove
93 | x-ng-mouseover
94 | x-ng-mouseup
95 | x-ng-non-bindable
96 | x-ng-pluralize
97 | x-ng-repeat
98 | x-ng-show
99 | x-ng-style
100 | x-ng-switch
101 | x-ng-transclude
102 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetTagForAngularTag13.gold:
--------------------------------------------------------------------------------
1 | ng-include
2 | Own attributes: 2
3 | autoscroll
4 | onload
5 | Inherited attributes: 99
6 | data-ng-app
7 | data-ng-bind
8 | data-ng-bind-html
9 | data-ng-bind-template
10 | data-ng-class
11 | data-ng-class-even
12 | data-ng-class-odd
13 | data-ng-click
14 | data-ng-cloak
15 | data-ng-controller
16 | data-ng-dblclick
17 | data-ng-form
18 | data-ng-hide
19 | data-ng-if
20 | data-ng-include
21 | data-ng-init
22 | data-ng-keydown
23 | data-ng-keypress
24 | data-ng-keyup
25 | data-ng-model-options
26 | data-ng-mousedown
27 | data-ng-mouseenter
28 | data-ng-mouseleave
29 | data-ng-mousemove
30 | data-ng-mouseover
31 | data-ng-mouseup
32 | data-ng-non-bindable
33 | data-ng-pluralize
34 | data-ng-repeat
35 | data-ng-show
36 | data-ng-style
37 | data-ng-switch
38 | data-ng-transclude
39 | ng-app
40 | ng-bind
41 | ng-bind-html
42 | ng-bind-template
43 | ng-class
44 | ng-class-even
45 | ng-class-odd
46 | ng-click
47 | ng-cloak
48 | ng-controller
49 | ng-dblclick
50 | ng-form
51 | ng-hide
52 | ng-if
53 | ng-include
54 | ng-init
55 | ng-keydown
56 | ng-keypress
57 | ng-keyup
58 | ng-model-options
59 | ng-mousedown
60 | ng-mouseenter
61 | ng-mouseleave
62 | ng-mousemove
63 | ng-mouseover
64 | ng-mouseup
65 | ng-non-bindable
66 | ng-pluralize
67 | ng-repeat
68 | ng-show
69 | ng-style
70 | ng-switch
71 | ng-transclude
72 | x-ng-app
73 | x-ng-bind
74 | x-ng-bind-html
75 | x-ng-bind-template
76 | x-ng-class
77 | x-ng-class-even
78 | x-ng-class-odd
79 | x-ng-click
80 | x-ng-cloak
81 | x-ng-controller
82 | x-ng-dblclick
83 | x-ng-form
84 | x-ng-hide
85 | x-ng-if
86 | x-ng-include
87 | x-ng-init
88 | x-ng-keydown
89 | x-ng-keypress
90 | x-ng-keyup
91 | x-ng-model-options
92 | x-ng-mousedown
93 | x-ng-mouseenter
94 | x-ng-mouseleave
95 | x-ng-mousemove
96 | x-ng-mouseover
97 | x-ng-mouseup
98 | x-ng-non-bindable
99 | x-ng-pluralize
100 | x-ng-repeat
101 | x-ng-show
102 | x-ng-style
103 | x-ng-switch
104 | x-ng-transclude
105 |
--------------------------------------------------------------------------------
/test/data/psi/Html/ElementsProvider/GetTagForAngularTag14.gold:
--------------------------------------------------------------------------------
1 | ng-include
2 | Own attributes: 2
3 | autoscroll
4 | onload
5 | Inherited attributes: 105
6 | data-ng-app
7 | data-ng-bind
8 | data-ng-bind-html
9 | data-ng-bind-template
10 | data-ng-class
11 | data-ng-class-even
12 | data-ng-class-odd
13 | data-ng-click
14 | data-ng-cloak
15 | data-ng-controller
16 | data-ng-dblclick
17 | data-ng-form
18 | data-ng-hide
19 | data-ng-if
20 | data-ng-include
21 | data-ng-init
22 | data-ng-jq
23 | data-ng-keydown
24 | data-ng-keypress
25 | data-ng-keyup
26 | data-ng-model-options
27 | data-ng-mousedown
28 | data-ng-mouseenter
29 | data-ng-mouseleave
30 | data-ng-mousemove
31 | data-ng-mouseover
32 | data-ng-mouseup
33 | data-ng-non-bindable
34 | data-ng-options
35 | data-ng-pluralize
36 | data-ng-repeat
37 | data-ng-show
38 | data-ng-style
39 | data-ng-switch
40 | data-ng-transclude
41 | ng-app
42 | ng-bind
43 | ng-bind-html
44 | ng-bind-template
45 | ng-class
46 | ng-class-even
47 | ng-class-odd
48 | ng-click
49 | ng-cloak
50 | ng-controller
51 | ng-dblclick
52 | ng-form
53 | ng-hide
54 | ng-if
55 | ng-include
56 | ng-init
57 | ng-jq
58 | ng-keydown
59 | ng-keypress
60 | ng-keyup
61 | ng-model-options
62 | ng-mousedown
63 | ng-mouseenter
64 | ng-mouseleave
65 | ng-mousemove
66 | ng-mouseover
67 | ng-mouseup
68 | ng-non-bindable
69 | ng-options
70 | ng-pluralize
71 | ng-repeat
72 | ng-show
73 | ng-style
74 | ng-switch
75 | ng-transclude
76 | x-ng-app
77 | x-ng-bind
78 | x-ng-bind-html
79 | x-ng-bind-template
80 | x-ng-class
81 | x-ng-class-even
82 | x-ng-class-odd
83 | x-ng-click
84 | x-ng-cloak
85 | x-ng-controller
86 | x-ng-dblclick
87 | x-ng-form
88 | x-ng-hide
89 | x-ng-if
90 | x-ng-include
91 | x-ng-init
92 | x-ng-jq
93 | x-ng-keydown
94 | x-ng-keypress
95 | x-ng-keyup
96 | x-ng-model-options
97 | x-ng-mousedown
98 | x-ng-mouseenter
99 | x-ng-mouseleave
100 | x-ng-mousemove
101 | x-ng-mouseover
102 | x-ng-mouseup
103 | x-ng-non-bindable
104 | x-ng-options
105 | x-ng-pluralize
106 | x-ng-repeat
107 | x-ng-show
108 | x-ng-style
109 | x-ng-switch
110 | x-ng-transclude
111 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectBuiltinServices.js:
--------------------------------------------------------------------------------
1 | // Provider declared as a named function
2 | // $get is simple function
3 | module.controller('c1', function($cacheFactory, $cacheFactoryProvider) {
4 | var get = $cacheFactoryProvider.get;
5 | $cacheFactory.info();
6 | });
7 |
8 | // Provider declared as a named function
9 | // $get method is injected function
10 | module.controller('c2', function($anchorScroll, $anchorScrollProvider) {
11 | $anchorScrollProvider.disableAutoScrolling();
12 | $anchorScroll('#foo');
13 | });
14 |
15 | // Provider defined as an injected function, assigned to a variable
16 | module.controller('c3', function($animate, $animateProvider) {
17 | $animateProvider.register('thing', function() {
18 | return {};
19 | });
20 | $animate.on('enter', container,
21 | function callback(element, phase) {
22 | // cool we detected an enter animation within the container
23 | }
24 | );
25 | });
26 |
27 | // Get method return value dependent on injected value
28 | module.controller('c4', function($templateCache) {
29 | var x = $templateCache.remove('templateId.html');
30 | });
31 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectBuiltinServices.js.gold:
--------------------------------------------------------------------------------
1 | // Provider declared as a named function
2 | // $get is simple function
3 | module.controller('c1', function($cacheFactory, $cacheFactoryProvider) {
4 | var get = |$cacheFactoryProvider|(0).|get|(1);
5 | |$cacheFactory|(2).|info|(3)();
6 | });
7 |
8 | // Provider declared as a named function
9 | // $get method is injected function
10 | module.controller('c2', function($anchorScroll, $anchorScrollProvider) {
11 | |$anchorScrollProvider|(4).|disableAutoScrolling|(5)();
12 | |$anchorScroll|(6)('#foo');
13 | });
14 |
15 | // Provider defined as an injected function, assigned to a variable
16 | module.controller('c3', function($animate, $animateProvider) {
17 | |$animateProvider|(7).|register|(8)('thing', function() {
18 | return {};
19 | });
20 | |$animate|(9).|on|(10)('enter', container,
21 | function callback(element, phase) {
22 | // cool we detected an enter animation within the container
23 | }
24 | );
25 | });
26 |
27 | // Get method return value dependent on injected value
28 | module.controller('c4', function($templateCache) {
29 | var x = |$templateCache|(11).|remove|(12)('templateId.html');
30 | });
31 |
32 | ------------------------------------------------
33 | 0: result=OK declaredElem=parameter $cacheFactoryProvider : any ($cacheFactory/
34 | void)
35 | 1: result=DYNAMIC_OK declaredElem=property get : any
36 | 2: result=OK declaredElem=parameter $cacheFactory : any ((cacheId: any, options: any) => any ({put; get; remove; removeAll; destroy; info; })/
37 | Function)
38 | 3: result=DYNAMIC_OK declaredElem=property info : any (() => any)
39 | 4: result=OK declaredElem=parameter $anchorScrollProvider : any ($anchorScroll/
40 | void)
41 | 5: result=DYNAMIC_OK declaredElem=property disableAutoScrolling : any (() => void)
42 | 6: result=OK declaredElem=parameter $anchorScroll : any ((hash: any) => void/
43 | Function)
44 | 7: result=OK declaredElem=parameter $animateProvider : any ($animate/
45 | void)
46 | 8: result=DYNAMIC_OK declaredElem=property register : any ((name: string, factory: any (Function)) => void)
47 | 9: result=OK declaredElem=parameter $animate : any ({
48 | on;
49 | off;
50 | pin;
51 | enabled;
52 | cancel;
53 | enter;
54 | move;
55 | leave;
56 | addClass;
57 | ...
58 | })
59 | 10: result=DYNAMIC_OK declaredElem=property on : any (() => void)
60 | 11: result=OK declaredElem=parameter $templateCache : any ({
61 | put;
62 | get;
63 | remove;
64 | removeAll;
65 | destroy;
66 | info;
67 | })
68 | 12: result=DYNAMIC_OK declaredElem=property remove : any ((key: string) => void)
69 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectBuiltinServicesByStringLiteral.js:
--------------------------------------------------------------------------------
1 | module.controller('myController', [ '$log', '$logProvider', function(l, lp) {
2 | lp.debugEnabled(true);
3 | l.debug('hello');
4 | });
5 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectBuiltinServicesByStringLiteral.js.gold:
--------------------------------------------------------------------------------
1 | module.controller('myController', [ '$log', '$logProvider', function(l, lp) {
2 | |lp|(0).|debugEnabled|(1)(true);
3 | |l|(2).|debug|(3)('hello');
4 | });
5 |
6 | ------------------------------------------------
7 | 0: result=OK declaredElem=parameter lp : any ($log/
8 | void)
9 | 1: result=DYNAMIC_OK declaredElem=property debugEnabled : any ((flag?: boolean) => any (debugEnabled/void/...))
10 | 2: result=OK declaredElem=parameter l : any ({
11 | log;
12 | info;
13 | warn;
14 | error;
15 | debug;
16 | })
17 | 3: result=DYNAMIC_OK declaredElem=property debug : any (() => void)
18 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectByStringLiteral.js:
--------------------------------------------------------------------------------
1 | module.value('myValue', 42);
2 |
3 | module.factory('myFactory', function() {
4 | return {
5 | 'sayHi': function(name) {
6 | return 'Hi ' + name;
7 | }
8 | }
9 | });
10 |
11 | module.service('myService', function() {
12 | this.sayHello = function(name) {
13 | return 'Hi ' + name;
14 | }
15 | this.sayGoodbye = function(name) {
16 | return 'Bye ' + name;
17 | }
18 | });
19 |
20 | module.controller('myController', [ 'myValue', 'myFactory', 'myService', function(v, f, s) {
21 | var p = v * 2;
22 | f.sayHi('Matt');
23 | s.sayHello('Matt');
24 | });
25 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectByStringLiteral.js.gold:
--------------------------------------------------------------------------------
1 | module.value('myValue', 42);
2 |
3 | module.factory('myFactory', function() {
4 | return {
5 | 'sayHi': function(name) {
6 | return 'Hi ' + name;
7 | }
8 | }
9 | });
10 |
11 | module.service('myService', function() {
12 | this.sayHello = function(name) {
13 | return 'Hi ' + name;
14 | }
15 | this.sayGoodbye = function(name) {
16 | return 'Bye ' + name;
17 | }
18 | });
19 |
20 | module.controller('myController', [ 'myValue', 'myFactory', 'myService', function(v, f, s) {
21 | var p = |v|(0) * 2;
22 | |f|(1).|sayHi|(2)('Matt');
23 | |s|(3).|sayHello|(4)('Matt');
24 | });
25 |
26 | ------------------------------------------------
27 | 0: result=OK declaredElem=parameter v : any (number)
28 | 1: result=OK declaredElem=parameter f : any ({
29 | sayHi;
30 | })
31 | 2: result=DYNAMIC_OK declaredElem=property sayHi : any ((name: any) => any (number/string))
32 | 3: result=OK declaredElem=parameter s : any (void)
33 | 4: result=DYNAMIC_OK declaredElem=property sayHello : any ((name: any) => any (number/string))
34 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectFactory.js:
--------------------------------------------------------------------------------
1 | module.factory('myFactory', function() {
2 | return {
3 | 'sayHello': function(name) {
4 | return 'Hi ' + name;
5 | }
6 | }
7 | });
8 |
9 | module.controller('myController', function(myFactory) {
10 | myFactory.sayHello('Matt');
11 | });
12 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectFactory.js.gold:
--------------------------------------------------------------------------------
1 | module.factory('myFactory', function() {
2 | return {
3 | 'sayHello': function(name) {
4 | return 'Hi ' + name;
5 | }
6 | }
7 | });
8 |
9 | module.controller('myController', function(myFactory) {
10 | |myFactory|(0).|sayHello|(1)('Matt');
11 | });
12 |
13 | ------------------------------------------------
14 | 0: result=OK declaredElem=parameter myFactory : any ({
15 | sayHello;
16 | })
17 | 1: result=DYNAMIC_OK declaredElem=property sayHello : any ((name: any) => any (number/string))
18 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectFunctionConstant.js:
--------------------------------------------------------------------------------
1 | module.constant('myConstantFunc', function(name) {
2 | return "Hello " + name;
3 | });
4 |
5 | module.controller('myController', function(myConstantFunc) {
6 | return myConstantFunc('Matt');
7 | });
8 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectFunctionConstant.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('myConstantFunc', function(name) {
2 | return "Hello " + name;
3 | });
4 |
5 | module.controller('myController', function(myConstantFunc) {
6 | return |myConstantFunc|(0)('Matt');
7 | });
8 |
9 | ------------------------------------------------
10 | 0: result=OK declaredElem=parameter myConstantFunc : any (Function/
11 | (name: any) => any (number/string))
12 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectFunctionValue.js:
--------------------------------------------------------------------------------
1 | module.value('myValueFunc', function(name) {
2 | return "Hello " + name;
3 | });
4 |
5 | module.controller('myController', function(myValueFunc) {
6 | return myValueFunc('Matt');
7 | });
8 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectFunctionValue.js.gold:
--------------------------------------------------------------------------------
1 | module.value('myValueFunc', function(name) {
2 | return "Hello " + name;
3 | });
4 |
5 | module.controller('myController', function(myValueFunc) {
6 | return |myValueFunc|(0)('Matt');
7 | });
8 |
9 | ------------------------------------------------
10 | 0: result=OK declaredElem=parameter myValueFunc : any (Function/
11 | (name: any) => any (number/string))
12 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoAnimation.js:
--------------------------------------------------------------------------------
1 | module.value('myOpacity', 0.5);
2 |
3 | module.animation('.enter-in', function(myOpacity) {
4 | return {
5 | enter: function(element, done) {
6 | jQuery(element).animate({
7 | opacity: myOpacity
8 | }, done);
9 | }
10 | };
11 | });
12 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoAnimation.js.gold:
--------------------------------------------------------------------------------
1 | module.value('myOpacity', 0.5);
2 |
3 | module.animation('.enter-in', function(myOpacity) {
4 | return {
5 | enter: function(element, done) {
6 | jQuery(element).animate({
7 | opacity: |myOpacity|(0)
8 | }, done);
9 | }
10 | };
11 | });
12 |
13 | ------------------------------------------------
14 | 0: result=OK declaredElem=parameter myOpacity : any (number)
15 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoConfig.js:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 'stuff');
2 |
3 | module.config(function(myConstant) {
4 | var p = myConstant;
5 | });
6 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoConfig.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 'stuff');
2 |
3 | module.config(function(myConstant) {
4 | var p = |myConstant|(0);
5 | });
6 |
7 | ------------------------------------------------
8 | 0: result=OK declaredElem=parameter myConstant : any (string)
9 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoController.js:
--------------------------------------------------------------------------------
1 | module.factory('myFactory', function() {
2 | return {
3 | 'sayHello': function(name) {
4 | return 'Hi ' + name;
5 | }
6 | }
7 | });
8 |
9 | module.controller('myController', function(myFactory) {
10 | myFactory.sayHello('Matt');
11 | });
12 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoController.js.gold:
--------------------------------------------------------------------------------
1 | module.factory('myFactory', function() {
2 | return {
3 | 'sayHello': function(name) {
4 | return 'Hi ' + name;
5 | }
6 | }
7 | });
8 |
9 | module.controller('myController', function(myFactory) {
10 | |myFactory|(0).|sayHello|(1)('Matt');
11 | });
12 |
13 | ------------------------------------------------
14 | 0: result=OK declaredElem=parameter myFactory : any ({
15 | sayHello;
16 | })
17 | 1: result=DYNAMIC_OK declaredElem=property sayHello : any ((name: any) => any (number/string))
18 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoDirective.js:
--------------------------------------------------------------------------------
1 | module.factory('myFactory', function() {
2 | return {
3 | 'sayHello': function(name) {
4 | return 'Hi ' + name;
5 | }
6 | }
7 | });
8 |
9 | module.directive('myDirective', function(myFactory) {
10 | function link(scope, element, attrs) {
11 | scope.greeting = myFactory.sayHello('Matt');
12 | }
13 | return {
14 | link: link
15 | };
16 | });
17 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoDirective.js.gold:
--------------------------------------------------------------------------------
1 | module.factory('myFactory', function() {
2 | return {
3 | 'sayHello': function(name) {
4 | return 'Hi ' + name;
5 | }
6 | }
7 | });
8 |
9 | module.directive('myDirective', function(myFactory) {
10 | function link(scope, element, attrs) {
11 | scope.greeting = |myFactory|(0).|sayHello|(1)('Matt');
12 | }
13 | return {
14 | link: link
15 | };
16 | });
17 |
18 | ------------------------------------------------
19 | 0: result=OK declaredElem=parameter myFactory : any ({
20 | sayHello;
21 | })
22 | 1: result=DYNAMIC_OK declaredElem=property sayHello : any ((name: any) => any (number/string))
23 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoFactory.js:
--------------------------------------------------------------------------------
1 | module.constant('defaultGreeting', 'Hi');
2 |
3 | module.factory('myFactory', function(defaultGreeting) {
4 | return {
5 | 'sayHello': function(name) {
6 | return defaultGreeting + ' ' + name;
7 | }
8 | }
9 | });
10 |
11 | module.controller('myController', function(myFactory) {
12 | myFactory.sayHello('Matt');
13 | });
14 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoFactory.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('defaultGreeting', 'Hi');
2 |
3 | module.factory('myFactory', function(defaultGreeting) {
4 | return {
5 | 'sayHello': function(name) {
6 | return |defaultGreeting|(0) + ' ' + name;
7 | }
8 | }
9 | });
10 |
11 | module.controller('myController', function(myFactory) {
12 | myFactory.sayHello('Matt');
13 | });
14 |
15 | ------------------------------------------------
16 | 0: result=OK declaredElem=parameter defaultGreeting : any (string)
17 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoFilter.js:
--------------------------------------------------------------------------------
1 | module.value('greet', function(name) {
2 | return 'Hello ' + name;
3 | });
4 |
5 | module.filter('myFilter', function(greet) {
6 | return function(text) {
7 | return text && greet(text) || text;
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoFilter.js.gold:
--------------------------------------------------------------------------------
1 | module.value('greet', function(name) {
2 | return 'Hello ' + name;
3 | });
4 |
5 | module.filter('myFilter', function(greet) {
6 | return function(text) {
7 | return text && |greet|(0)(text) || text;
8 | }
9 | });
10 |
11 | ------------------------------------------------
12 | 0: result=OK declaredElem=parameter greet : any (Function/
13 | (name: any) => any (number/string))
14 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoProvider.js:
--------------------------------------------------------------------------------
1 | module.constant('defaultSalutation', 'hello');
2 |
3 | module.provider('greeter', function(defaultSalutation) {
4 | var salutation = defaultSalutation;
5 | this.setSalutation = function(s) {
6 | salutation = s;
7 | }
8 |
9 | function Greeter(a) {
10 | this.greet = function() {
11 | return salutation + ' ' + s;
12 | }
13 | }
14 |
15 | this.$get = function(a) {
16 | return new Greeter(a);
17 | }
18 | });
19 |
20 | module.controller('myController', function(greeter) {
21 | greeter.greet();
22 | });
23 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoProvider.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('defaultSalutation', 'hello');
2 |
3 | module.provider('greeter', function(defaultSalutation) {
4 | var salutation = |defaultSalutation|(0);
5 | this.setSalutation = function(s) {
6 | salutation = s;
7 | }
8 |
9 | function Greeter(a) {
10 | this.greet = function() {
11 | return salutation + ' ' + s;
12 | }
13 | }
14 |
15 | this.$get = function(a) {
16 | return new Greeter(a);
17 | }
18 | });
19 |
20 | module.controller('myController', function(greeter) {
21 | greeter.greet();
22 | });
23 |
24 | ------------------------------------------------
25 | 0: result=OK declaredElem=parameter defaultSalutation : any (string)
26 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoRun.js:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 'stuff');
2 |
3 | module.run(function(myConstant) {
4 | var p = myConstant;
5 | });
6 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoRun.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 'stuff');
2 |
3 | module.run(function(myConstant) {
4 | var p = |myConstant|(0);
5 | });
6 |
7 | ------------------------------------------------
8 | 0: result=OK declaredElem=parameter myConstant : any (string)
9 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoService.js:
--------------------------------------------------------------------------------
1 | module.constant('defaultGreeting', 'Hi');
2 | module.service('myService', function(defaultGreeting) {
3 | this.sayHello = function(name) {
4 | return defaultGreeting + ' ' + name;
5 | }
6 | this.sayGoodbye = function(name) {
7 | return 'Bye ' + name;
8 | }
9 | });
10 |
11 | module.controller('myController', function(myService) {
12 | myService.sayHello('Matt');
13 | });
14 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectIntoService.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('defaultGreeting', 'Hi');
2 | module.service('myService', function(defaultGreeting) {
3 | this.sayHello = function(name) {
4 | return |defaultGreeting|(0) + ' ' + name;
5 | }
6 | this.sayGoodbye = function(name) {
7 | return 'Bye ' + name;
8 | }
9 | });
10 |
11 | module.controller('myController', function(myService) {
12 | myService.sayHello('Matt');
13 | });
14 |
15 | ------------------------------------------------
16 | 0: result=OK declaredElem=parameter defaultGreeting : any (string)
17 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectNumberConstant.js:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 42);
2 |
3 | module.controller('myController', function(myConstant) {
4 | return myConstant * 2;
5 | });
6 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectNumberConstant.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 42);
2 |
3 | module.controller('myController', function(myConstant) {
4 | return |myConstant|(0) * 2;
5 | });
6 |
7 | ------------------------------------------------
8 | 0: result=OK declaredElem=parameter myConstant : any (number)
9 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectProvider.js:
--------------------------------------------------------------------------------
1 | module.provider('greeter', function() {
2 | var salutation = 'hello';
3 | this.setSalutation = function(s) {
4 | salutation = s;
5 | }
6 |
7 | function Greeter(a) {
8 | this.greet = function() {
9 | return salutation + ' ' + s;
10 | }
11 | }
12 |
13 | this.$get = function(a) {
14 | return new Greeter(a);
15 | }
16 | });
17 |
18 | module.config(function(greeterProvider) {
19 | greeterProvider.setSalutation('hi');
20 | });
21 |
22 | module.controller('myController', function(greeter) {
23 | greeter.greet();
24 | });
25 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectProvider.js.gold:
--------------------------------------------------------------------------------
1 | module.provider('greeter', function() {
2 | var salutation = 'hello';
3 | this.setSalutation = function(s) {
4 | salutation = s;
5 | }
6 |
7 | function Greeter(a) {
8 | this.greet = function() {
9 | return salutation + ' ' + s;
10 | }
11 | }
12 |
13 | this.$get = function(a) {
14 | return new Greeter(a);
15 | }
16 | });
17 |
18 | module.config(function(greeterProvider) {
19 | |greeterProvider|(0).|setSalutation|(1)('hi');
20 | });
21 |
22 | module.controller('myController', function(greeter) {
23 | |greeter|(2).|greet|(3)();
24 | });
25 |
26 | ------------------------------------------------
27 | 0: result=OK declaredElem=parameter greeterProvider : any (void)
28 | 1: result=DYNAMIC_OK declaredElem=property setSalutation : any ((s: any) => void)
29 | 2: result=OK declaredElem=parameter greeter : any (void)
30 | 3: result=DYNAMIC_OK declaredElem=property greet : any (() => any (number/string))
31 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectProviderValue.js:
--------------------------------------------------------------------------------
1 | module.provider('greeter', function() {
2 | var salutation = 'hello';
3 | this.setSalutation = function(s) {
4 | salutation = s;
5 | }
6 |
7 | function Greeter(a) {
8 | this.greet = function() {
9 | return salutation + ' ' + s;
10 | }
11 | }
12 |
13 | this.$get = function(a) {
14 | return new Greeter(a);
15 | }
16 | });
17 |
18 | module.controller('myController', function(greeter) {
19 | greeter.greet();
20 | });
21 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectProviderValue.js.gold:
--------------------------------------------------------------------------------
1 | module.provider('greeter', function() {
2 | var salutation = 'hello';
3 | this.setSalutation = function(s) {
4 | salutation = s;
5 | }
6 |
7 | function Greeter(a) {
8 | this.greet = function() {
9 | return salutation + ' ' + s;
10 | }
11 | }
12 |
13 | this.$get = function(a) {
14 | return new Greeter(a);
15 | }
16 | });
17 |
18 | module.controller('myController', function(greeter) {
19 | |greeter|(0).|greet|(1)();
20 | });
21 |
22 | ------------------------------------------------
23 | 0: result=OK declaredElem=parameter greeter : any (void)
24 | 1: result=DYNAMIC_OK declaredElem=property greet : any (() => any (number/string))
25 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectService.js:
--------------------------------------------------------------------------------
1 | module.service('myService', function() {
2 | this.sayHello = function(name) {
3 | return 'Hi ' + name;
4 | }
5 | this.sayGoodbye = function(name) {
6 | return 'Bye ' + name;
7 | }
8 | });
9 |
10 | module.controller('myController', function(myService) {
11 | myService.sayHello('Matt');
12 | });
13 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectService.js.gold:
--------------------------------------------------------------------------------
1 | module.service('myService', function() {
2 | this.sayHello = function(name) {
3 | return 'Hi ' + name;
4 | }
5 | this.sayGoodbye = function(name) {
6 | return 'Bye ' + name;
7 | }
8 | });
9 |
10 | module.controller('myController', function(myService) {
11 | |myService|(0).|sayHello|(1)('Matt');
12 | });
13 |
14 | ------------------------------------------------
15 | 0: result=OK declaredElem=parameter myService : any (void)
16 | 1: result=DYNAMIC_OK declaredElem=property sayHello : any ((name: any) => any (number/string))
17 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectStringConstant.js:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 'hello world');
2 |
3 | module.controller('myController', function(myConstant) {
4 | return myConstant;
5 | });
6 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectStringConstant.js.gold:
--------------------------------------------------------------------------------
1 | module.constant('myConstant', 'hello world');
2 |
3 | module.controller('myController', function(myConstant) {
4 | return |myConstant|(0);
5 | });
6 |
7 | ------------------------------------------------
8 | 0: result=OK declaredElem=parameter myConstant : any (string)
9 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectStringValue.js:
--------------------------------------------------------------------------------
1 | module.value('myValue', 'hello world');
2 |
3 | module.controller('myController', function(myValue) {
4 | return myValue;
5 | });
6 |
--------------------------------------------------------------------------------
/test/data/psi/JavaScript/Resolve/DependencyInjection/InjectStringValue.js.gold:
--------------------------------------------------------------------------------
1 | module.value('myValue', 'hello world');
2 |
3 | module.controller('myController', function(myValue) {
4 | return |myValue|(0);
5 | });
6 |
7 | ------------------------------------------------
8 | 0: result=OK declaredElem=parameter myValue : any (string)
9 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/expression.js:
--------------------------------------------------------------------------------
1 | aaa = 111 + 222
2 | aaa ^ 333
3 | 42 ? 444 : 555
--------------------------------------------------------------------------------
/test/data/psi/lexing/expression.js.gold:
--------------------------------------------------------------------------------
1 | IDENTIFIER «aaa»
2 | WHITE_SPACE « »
3 | EQ «=»
4 | WHITE_SPACE « »
5 | NUMERIC_LITERAL «111»
6 | WHITE_SPACE « »
7 | PLUS «+»
8 | WHITE_SPACE « »
9 | NUMERIC_LITERAL «222»
10 | WHITE_SPACE «[0D][0A]»
11 | IDENTIFIER «aaa»
12 | WHITE_SPACE « »
13 | CAROT «^»
14 | WHITE_SPACE « »
15 | NUMERIC_LITERAL «333»
16 | WHITE_SPACE «[0D][0A]»
17 | NUMERIC_LITERAL «42»
18 | WHITE_SPACE « »
19 | QUESTION «?»
20 | WHITE_SPACE « »
21 | NUMERIC_LITERAL «444»
22 | WHITE_SPACE « »
23 | COLON «:»
24 | WHITE_SPACE « »
25 | NUMERIC_LITERAL «555»
26 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/identifier.js:
--------------------------------------------------------------------------------
1 | $
2 | _
3 | aaaaa
4 | aaaa19
5 | $aaaaa
6 | $aaaaa19
7 | _aaaaa
8 | _aaaaa19
--------------------------------------------------------------------------------
/test/data/psi/lexing/identifier.js.gold:
--------------------------------------------------------------------------------
1 | IDENTIFIER «$»
2 | WHITE_SPACE «[0D][0A]»
3 | IDENTIFIER «_»
4 | WHITE_SPACE «[0D][0A]»
5 | IDENTIFIER «aaaaa»
6 | WHITE_SPACE «[0D][0A]»
7 | IDENTIFIER «aaaa19»
8 | WHITE_SPACE «[0D][0A]»
9 | IDENTIFIER «$aaaaa»
10 | WHITE_SPACE «[0D][0A]»
11 | IDENTIFIER «$aaaaa19»
12 | WHITE_SPACE «[0D][0A]»
13 | IDENTIFIER «_aaaaa»
14 | WHITE_SPACE «[0D][0A]»
15 | IDENTIFIER «_aaaaa19»
16 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/key_value.js:
--------------------------------------------------------------------------------
1 | (key value) in bar
--------------------------------------------------------------------------------
/test/data/psi/lexing/key_value.js.gold:
--------------------------------------------------------------------------------
1 | LPAREN «(»
2 | IDENTIFIER «key»
3 | WHITE_SPACE « »
4 | IDENTIFIER «value»
5 | RPAREN «)»
6 | WHITE_SPACE « »
7 | IN_KEYWORD «in»
8 | WHITE_SPACE « »
9 | IDENTIFIER «bar»
10 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/keyword.js:
--------------------------------------------------------------------------------
1 | true
2 | false
3 | null
4 | undefined
5 | in
6 | track by
--------------------------------------------------------------------------------
/test/data/psi/lexing/keyword.js.gold:
--------------------------------------------------------------------------------
1 | TRUE_KEYWORD «true»
2 | WHITE_SPACE «[0D][0A]»
3 | FALSE_KEYWORD «false»
4 | WHITE_SPACE «[0D][0A]»
5 | NULL_KEYWORD «null»
6 | WHITE_SPACE «[0D][0A]»
7 | UNDEFINED_KEYWORD «undefined»
8 | WHITE_SPACE «[0D][0A]»
9 | IN_KEYWORD «in»
10 | WHITE_SPACE «[0D][0A]»
11 | TRACK_BY_KEYWORD «track by»
12 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/number.js:
--------------------------------------------------------------------------------
1 | 11
2 | .1
3 | 11.1
4 | 20e2
5 | 20E2
6 | 20e-1
7 | 20e+1
8 | 20E-1
9 | 20E+1
--------------------------------------------------------------------------------
/test/data/psi/lexing/number.js.gold:
--------------------------------------------------------------------------------
1 | NUMERIC_LITERAL «11»
2 | WHITE_SPACE «[0D][0A]»
3 | NUMERIC_LITERAL «.1»
4 | WHITE_SPACE «[0D][0A]»
5 | NUMERIC_LITERAL «11.1»
6 | WHITE_SPACE «[0D][0A]»
7 | NUMERIC_LITERAL «20e2»
8 | WHITE_SPACE «[0D][0A]»
9 | NUMERIC_LITERAL «20E2»
10 | WHITE_SPACE «[0D][0A]»
11 | NUMERIC_LITERAL «20e-1»
12 | WHITE_SPACE «[0D][0A]»
13 | NUMERIC_LITERAL «20e+1»
14 | WHITE_SPACE «[0D][0A]»
15 | NUMERIC_LITERAL «20E-1»
16 | WHITE_SPACE «[0D][0A]»
17 | NUMERIC_LITERAL «20E+1»
18 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/string.js:
--------------------------------------------------------------------------------
1 | 'foo'
2 | 'fo\u0042'
3 | '\n\r'
4 | "bar"
5 | 'fo\uzzzz'
6 | 'fo\u1'
7 | 'fo\u12'
8 | 'fo\u123'
9 | 'fo\u'
10 |
11 |
--------------------------------------------------------------------------------
/test/data/psi/lexing/string.js.gold:
--------------------------------------------------------------------------------
1 | STRING_LITERAL «'foo'»
2 | WHITE_SPACE «[0D][0A]»
3 | STRING_LITERAL «'fo\u0042'»
4 | WHITE_SPACE «[0D][0A]»
5 | STRING_LITERAL «'\n\r'»
6 | WHITE_SPACE «[0D][0A]»
7 | STRING_LITERAL «"bar"»
8 | WHITE_SPACE «[0D][0A]»
9 | STRING_LITERAL «'fo\uzzzz'»
10 | WHITE_SPACE «[0D][0A]»
11 | STRING_LITERAL «'fo\u1'»
12 | WHITE_SPACE «[0D][0A]»
13 | STRING_LITERAL «'fo\u12'»
14 | WHITE_SPACE «[0D][0A]»
15 | STRING_LITERAL «'fo\u123'»
16 | WHITE_SPACE «[0D][0A]»
17 | STRING_LITERAL «'fo\u'»
18 | WHITE_SPACE «[0D][0A][0D][0A]»
19 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/array.js:
--------------------------------------------------------------------------------
1 | []
2 | [1, 2]
3 | [1][0]
4 | [[1]][0][0]
5 | [].length
6 | [1, 2].length
--------------------------------------------------------------------------------
/test/data/psi/parsing/array.js.gold:
--------------------------------------------------------------------------------
1 | Expression: «[]»
2 | Language: PsiLanguageType:AngularJS
3 | IJavaScriptFile
4 | IJavaScriptFileSection
5 | IExpressionStatement
6 | IArrayLiteral
7 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
8 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
9 |
10 | Expression: «[1, 2]»
11 | Language: PsiLanguageType:AngularJS
12 | IJavaScriptFile
13 | IJavaScriptFileSection
14 | IExpressionStatement
15 | IArrayLiteral
16 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
17 | IJavaScriptLiteralExpression
18 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
19 | JavaScriptTokenType+CommaTokenElement(type:COMMA, text:,)
20 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
21 | IJavaScriptLiteralExpression
22 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:2)
23 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
24 |
25 | Expression: «[1][0]»
26 | Language: PsiLanguageType:AngularJS
27 | IJavaScriptFile
28 | IJavaScriptFileSection
29 | IExpressionStatement
30 | IIndexExpression
31 | IArrayLiteral
32 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
33 | IJavaScriptLiteralExpression
34 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
35 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
36 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
37 | IJavaScriptLiteralExpression
38 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:0)
39 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
40 |
41 | Expression: «[[1]][0][0]»
42 | Language: PsiLanguageType:AngularJS
43 | IJavaScriptFile
44 | IJavaScriptFileSection
45 | IExpressionStatement
46 | IIndexExpression
47 | IIndexExpression
48 | IArrayLiteral
49 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
50 | IArrayLiteral
51 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
52 | IJavaScriptLiteralExpression
53 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
54 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
55 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
56 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
57 | IJavaScriptLiteralExpression
58 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:0)
59 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
60 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
61 | IJavaScriptLiteralExpression
62 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:0)
63 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
64 |
65 | Expression: «[].length»
66 | Language: PsiLanguageType:AngularJS
67 | IJavaScriptFile
68 | IJavaScriptFileSection
69 | IExpressionStatement
70 | IReferenceExpression
71 | IArrayLiteral
72 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
73 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
74 | JavaScriptTokenType+DotTokenElement(type:DOT, text:.)
75 | IIdentifierExpression
76 | Identifier(type:IDENTIFIER, text:length)
77 |
78 | Expression: «[1, 2].length»
79 | Language: PsiLanguageType:AngularJS
80 | IJavaScriptFile
81 | IJavaScriptFileSection
82 | IExpressionStatement
83 | IReferenceExpression
84 | IArrayLiteral
85 | JavaScriptTokenType+LbrackTokenElement(type:LBRACK, text:[)
86 | IJavaScriptLiteralExpression
87 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
88 | JavaScriptTokenType+CommaTokenElement(type:COMMA, text:,)
89 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
90 | IJavaScriptLiteralExpression
91 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:2)
92 | JavaScriptTokenType+RbrackTokenElement(type:RBRACK, text:])
93 | JavaScriptTokenType+DotTokenElement(type:DOT, text:.)
94 | IIdentifierExpression
95 | Identifier(type:IDENTIFIER, text:length)
96 |
97 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/comparison.js:
--------------------------------------------------------------------------------
1 | false
2 | !true
3 | 1==1
4 | 1==true
5 | 1===1
6 | 1==='1'
7 | 1===true
8 | 'true'===true
9 | 1!==2
10 | 1!=='1'
11 | 1!=2
12 | 1<2
13 | 1<=1
14 | 1>2
15 | 2>=1
16 | true==2<3
17 | true===2<3
--------------------------------------------------------------------------------
/test/data/psi/parsing/expressions.js:
--------------------------------------------------------------------------------
1 | -1
2 | 1 + 2.5
3 | 1 + -2.5
4 | 1+2*3/4
5 | 0--1+1.5
6 | -0--1++2*-3/-4
7 | 1/2*3
8 | (1+2)*3
9 | a=12
10 | x.y.z=123;
11 | a=123;b=234
--------------------------------------------------------------------------------
/test/data/psi/parsing/filters.js:
--------------------------------------------------------------------------------
1 | 1 | nonexistent
2 | 'abcd' | substring:1:offset
3 | 'abcd' | substring:1:3 | uppercase
4 | n = (name | lowercase)
5 | name | uppercase:
--------------------------------------------------------------------------------
/test/data/psi/parsing/in.js:
--------------------------------------------------------------------------------
1 | name in collection
2 | name in
--------------------------------------------------------------------------------
/test/data/psi/parsing/in.js.gold:
--------------------------------------------------------------------------------
1 | Expression: «name in collection»
2 | Language: PsiLanguageType:AngularJS
3 | IJavaScriptFile
4 | IJavaScriptFileSection
5 | IExpressionStatement
6 | RepeatExpression
7 | IReferenceExpression
8 | IIdentifierExpression
9 | Identifier(type:IDENTIFIER, text:name)
10 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
11 | JavaScriptTokenType+InKeywordTokenElement(type:IN_KEYWORD, text:in)
12 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
13 | IReferenceExpression
14 | IIdentifierExpression
15 | Identifier(type:IDENTIFIER, text:collection)
16 |
17 | Expression: «name in»
18 | Language: PsiLanguageType:AngularJS
19 | IJavaScriptFile
20 | IJavaScriptFileSection
21 | IExpressionStatement
22 | RepeatExpression
23 | IReferenceExpression
24 | IIdentifierExpression
25 | Identifier(type:IDENTIFIER, text:name)
26 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
27 | JavaScriptTokenType+InKeywordTokenElement(type:IN_KEYWORD, text:in)
28 | ErrorElement:Identifier expected
29 |
30 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/logical.js:
--------------------------------------------------------------------------------
1 | 0&&2
2 | 0||2
3 | 0||1&&2
4 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/logical.js.gold:
--------------------------------------------------------------------------------
1 | Expression: «0&&2»
2 | Language: PsiLanguageType:AngularJS
3 | IJavaScriptFile
4 | IJavaScriptFileSection
5 | IExpressionStatement
6 | IBinaryExpression
7 | IJavaScriptLiteralExpression
8 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:0)
9 | JavaScriptTokenType+Amper2TokenElement(type:AMPER2, text:&&)
10 | IJavaScriptLiteralExpression
11 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:2)
12 |
13 | Expression: «0||2»
14 | Language: PsiLanguageType:AngularJS
15 | IJavaScriptFile
16 | IJavaScriptFileSection
17 | IExpressionStatement
18 | IBinaryExpression
19 | IJavaScriptLiteralExpression
20 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:0)
21 | JavaScriptTokenType+Pipe2TokenElement(type:PIPE2, text:||)
22 | IJavaScriptLiteralExpression
23 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:2)
24 |
25 | Expression: «0||1&&2»
26 | Language: PsiLanguageType:AngularJS
27 | IJavaScriptFile
28 | IJavaScriptFileSection
29 | IExpressionStatement
30 | IBinaryExpression
31 | IJavaScriptLiteralExpression
32 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:0)
33 | JavaScriptTokenType+Pipe2TokenElement(type:PIPE2, text:||)
34 | IBinaryExpression
35 | IJavaScriptLiteralExpression
36 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
37 | JavaScriptTokenType+Amper2TokenElement(type:AMPER2, text:&&)
38 | IJavaScriptLiteralExpression
39 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:2)
40 |
41 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/object.js:
--------------------------------------------------------------------------------
1 | {}
2 | {a:'b'}
3 | {'a':'b'}
4 | {"a":'b'}
5 | {false:'WC', true:'CC'}[false]
6 | [{}]
7 | [{a:[]}, {b:1}]
8 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/repeat_expressions.js:
--------------------------------------------------------------------------------
1 | foo in bar
2 | (key, value) in bar
3 | foo in
4 | (key, value) in
5 | (key, value) i
6 | (key value) in bar
7 | (key) in bar
8 | (key,) in bar
9 | (, value) in bar
10 | foo in bar | some
11 | foo in bar | some:q
12 | (key, value) in bar | some
13 | (key, value) in bar | some:q
14 | foo in bar track by id
15 | foo in bar | some track by id
16 | foo in bar track by
17 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/statements.js:
--------------------------------------------------------------------------------
1 | a=1;b=3;a+b
2 | ;;1;;
--------------------------------------------------------------------------------
/test/data/psi/parsing/statements.js.gold:
--------------------------------------------------------------------------------
1 | Expression: «a=1;b=3;a+b»
2 | Language: PsiLanguageType:AngularJS
3 | IJavaScriptFile
4 | IJavaScriptFileSection
5 | IVariableStatement
6 | IVariableDeclaration
7 | IIdentifierExpression
8 | Identifier(type:IDENTIFIER, text:a)
9 | JavaScriptTokenType+EqTokenElement(type:EQ, text:=)
10 | IJavaScriptLiteralExpression
11 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
12 | JavaScriptTokenType+SemiTokenElement(type:SEMI, text:;)
13 | IVariableStatement
14 | IVariableDeclaration
15 | IIdentifierExpression
16 | Identifier(type:IDENTIFIER, text:b)
17 | JavaScriptTokenType+EqTokenElement(type:EQ, text:=)
18 | IJavaScriptLiteralExpression
19 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:3)
20 | JavaScriptTokenType+SemiTokenElement(type:SEMI, text:;)
21 | IExpressionStatement
22 | IBinaryExpression
23 | IReferenceExpression
24 | IIdentifierExpression
25 | Identifier(type:IDENTIFIER, text:a)
26 | JavaScriptTokenType+PlusTokenElement(type:PLUS, text:+)
27 | IReferenceExpression
28 | IIdentifierExpression
29 | Identifier(type:IDENTIFIER, text:b)
30 |
31 | Expression: «;;1;;»
32 | Language: PsiLanguageType:AngularJS
33 | IJavaScriptFile
34 | IJavaScriptFileSection
35 | IEmptyStatement
36 | JavaScriptTokenType+SemiTokenElement(type:SEMI, text:;)
37 | IEmptyStatement
38 | JavaScriptTokenType+SemiTokenElement(type:SEMI, text:;)
39 | IExpressionStatement
40 | IJavaScriptLiteralExpression
41 | JavaScriptGenericToken(type:NUMERIC_LITERAL, text:1)
42 | JavaScriptTokenType+SemiTokenElement(type:SEMI, text:;)
43 | IEmptyStatement
44 | JavaScriptTokenType+SemiTokenElement(type:SEMI, text:;)
45 |
46 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/string.js:
--------------------------------------------------------------------------------
1 | 'a' + 'b c'
2 | 'a' + 'b \u0042'
3 | 'a' + 'b \u'
4 | 'a' + 'b \u0042
5 | 'a' + 'b \u
--------------------------------------------------------------------------------
/test/data/psi/parsing/string.js.gold:
--------------------------------------------------------------------------------
1 | Expression: «'a' + 'b c'»
2 | Language: PsiLanguageType:AngularJS
3 | IJavaScriptFile
4 | IJavaScriptFileSection
5 | IExpressionStatement
6 | IBinaryExpression
7 | IJavaScriptLiteralExpression
8 | JavaScriptGenericToken(type:STRING_LITERAL, text:'a')
9 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
10 | JavaScriptTokenType+PlusTokenElement(type:PLUS, text:+)
11 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
12 | IJavaScriptLiteralExpression
13 | JavaScriptGenericToken(type:STRING_LITERAL, text:'b c')
14 |
15 | Expression: «'a' + 'b \u0042'»
16 | Language: PsiLanguageType:AngularJS
17 | IJavaScriptFile
18 | IJavaScriptFileSection
19 | IExpressionStatement
20 | IBinaryExpression
21 | IJavaScriptLiteralExpression
22 | JavaScriptGenericToken(type:STRING_LITERAL, text:'a')
23 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
24 | JavaScriptTokenType+PlusTokenElement(type:PLUS, text:+)
25 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
26 | IJavaScriptLiteralExpression
27 | JavaScriptGenericToken(type:STRING_LITERAL, text:'b \u0042')
28 |
29 | Expression: «'a' + 'b \u'»
30 | Language: PsiLanguageType:AngularJS
31 | IJavaScriptFile
32 | IJavaScriptFileSection
33 | IExpressionStatement
34 | IBinaryExpression
35 | IJavaScriptLiteralExpression
36 | JavaScriptGenericToken(type:STRING_LITERAL, text:'a')
37 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
38 | JavaScriptTokenType+PlusTokenElement(type:PLUS, text:+)
39 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
40 | IJavaScriptLiteralExpression
41 | JavaScriptGenericToken(type:STRING_LITERAL, text:'b \u')
42 |
43 | Expression: «'a' + 'b \u0042»
44 | Language: PsiLanguageType:AngularJS
45 | IJavaScriptFile
46 | IJavaScriptFileSection
47 | IExpressionStatement
48 | IBinaryExpression
49 | IJavaScriptLiteralExpression
50 | JavaScriptGenericToken(type:STRING_LITERAL, text:'a')
51 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
52 | JavaScriptTokenType+PlusTokenElement(type:PLUS, text:+)
53 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
54 | IJavaScriptLiteralExpression
55 | JavaScriptGenericToken(type:STRING_LITERAL, text:'b \u0042)
56 |
57 | Expression: «'a' + 'b \u»
58 | Language: PsiLanguageType:AngularJS
59 | IJavaScriptFile
60 | IJavaScriptFileSection
61 | IExpressionStatement
62 | IBinaryExpression
63 | IJavaScriptLiteralExpression
64 | JavaScriptGenericToken(type:STRING_LITERAL, text:'a')
65 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
66 | JavaScriptTokenType+PlusTokenElement(type:PLUS, text:+)
67 | Whitespace(type:WHITE_SPACE, text: ) spaces:" "
68 | IJavaScriptLiteralExpression
69 | JavaScriptGenericToken(type:STRING_LITERAL, text:'b \u)
70 |
71 |
--------------------------------------------------------------------------------
/test/data/psi/parsing/ternary.js:
--------------------------------------------------------------------------------
1 | 0?0:2
2 | 1?0:2
3 |
4 | 0?0?0:0:2
5 | 1?0?0:0:2
6 | 0?1?0:0:2
7 | 0?0?1:0:2
8 | 0?0?0:2:3
9 | 1?1?0:0:2
10 | 1?1?1:0:2
11 | 1?1?1:2:3
12 |
13 | 0?0:0?0:2
14 | 1?0:0?0:2
15 | 0?1:0?0:2
16 | 0?0:1?0:2
17 | 0?0:0?2:3
18 | 1?1:0?0:2
19 | 1?1:1?0:2
20 | 1?1:1?2:3
21 |
22 | 0&&1?0:1
23 | 1||0?0:0
24 |
25 | 0?0&&1:2
26 | 0?1&&1:2
27 | 0?0||0:1
28 | 0?0||1:2
29 |
30 | 1?0&&1:2
31 | 1?1&&1:2
32 | 1?0||0:1
33 | 1?0||1:2
34 |
35 | 0?1:0&&1
36 | 0?2:1&&1
37 | 0?1:0||0
38 | 0?2:0||1
39 |
40 | 1?1:0&&1
41 | 1?2:1&&1
42 | 1?1:0||0
43 | 1?2:0||1
44 |
45 | returnTrue() ? returnString() : returnInt()
46 | returnFalse() ? returnString() : returnInt()
47 | returnTrue() ? returnString() : returnInt()
48 | identity(returnFalse() ? returnString() : returnInt())
49 |
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/AngularJsTestVersions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using JetBrains.Util;
3 |
4 | namespace JetBrains.ReSharper.Plugins.AngularJS
5 | {
6 | public class AngularJsTestVersions
7 | {
8 | public static readonly Version[] Versions =
9 | {
10 | new Version(1, 2, 28),
11 | new Version(1, 3, 15),
12 | new Version(1, 4, 0)
13 | };
14 |
15 | public static string GetAngularJsVersion(FileSystemPath root, Version version)
16 | {
17 | return root.Combine("angular." + version.ToString(3) + ".js").FullPath;
18 | }
19 |
20 | public static string GetTestMethodName(string testMethodName, Version version)
21 | {
22 | return testMethodName + GetProductVersion(version);
23 | }
24 |
25 | public static string GetProductVersion(Version version)
26 | {
27 | return string.Format("{0}{1}", version.Major, version.Minor);
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Feature/Services/Caches/DirectivesCacheTest.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2015 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System.Linq;
18 | using JetBrains.ProjectModel;
19 | using JetBrains.ReSharper.Psi;
20 | using JetBrains.ReSharper.TestFramework;
21 | using NUnit.Framework;
22 |
23 | namespace JetBrains.ReSharper.Plugins.AngularJS.Feature.Services.Caches
24 | {
25 | [TestFixture]
26 | [TestFileExtension(JavaScriptProjectFileType.JS_EXTENSION)]
27 | public class DirectivesCacheTest : BaseTestWithSingleProject
28 | {
29 | protected override string RelativeTestDataPath { get { return "Caches"; } }
30 |
31 | protected override void DoTest(IProject testProject)
32 | {
33 | Solution.GetPsiServices().Files.CommitAllDocuments();
34 |
35 | var ngdocCache = Solution.GetComponent
();
36 |
37 | ExecuteWithGold(tw =>
38 | {
39 | var directives = ngdocCache.Directives.ToList();
40 | tw.WriteLine("Directives: {0}", directives.Count());
41 | foreach (var directive in directives.OrderBy(d => d.Name))
42 | {
43 | tw.WriteLine("{0} {1} {2} <{3}> {4}", directive.OriginalName, directive.Name, directive.Restrictions, string.Join(", ", directive.Tags), directive.Offset);
44 | foreach (var parameter in directive.Parameters.OrderBy(p => p.Name))
45 | {
46 | tw.WriteLine("\t{0} {1} {2} default: <{3}> {4}", parameter.Name, parameter.Type, parameter.IsOptional ? "optional" : "required", parameter.DefaultValue, parameter.Description);
47 | }
48 | }
49 | });
50 | }
51 |
52 | [Test]
53 | public void CacheDefaultAngularDirectives12()
54 | {
55 | DoTestSolution(@"..\angular.1.2.28.js");
56 | }
57 |
58 | [Test]
59 | public void CacheDefaultAngularDirectives13()
60 | {
61 | DoTestSolution(@"..\angular.1.3.15.js");
62 | }
63 |
64 | [Test]
65 | public void CacheDefaultAngularDirectives14()
66 | {
67 | DoTestSolution(@"..\angular.1.4.0.js");
68 | }
69 |
70 | [Test]
71 | public void SimpleDirectiveFromSource()
72 | {
73 | DoNamedTest();
74 | }
75 |
76 | [Test]
77 | public void DirectiveFromSourceWithRestrictProperty()
78 | {
79 | DoNamedTest();
80 | }
81 |
82 | [Test]
83 | public void DirectiveFromSourceWithInjectedFunction()
84 | {
85 | DoNamedTest();
86 | }
87 | }
88 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Feature/Services/Caches/FiltersCacheTest.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2015 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System.Linq;
18 | using JetBrains.ProjectModel;
19 | using JetBrains.ReSharper.Psi;
20 | using JetBrains.ReSharper.TestFramework;
21 | using NUnit.Framework;
22 |
23 | namespace JetBrains.ReSharper.Plugins.AngularJS.Feature.Services.Caches
24 | {
25 | [TestFixture]
26 | public class FiltersCacheTest : BaseTestWithSingleProject
27 | {
28 | protected override string RelativeTestDataPath { get { return "Caches"; } }
29 |
30 | protected override void DoTest(IProject testProject)
31 | {
32 | Solution.GetPsiServices().Files.CommitAllDocuments();
33 |
34 | var ngdocCache = Solution.GetComponent();
35 |
36 | ExecuteWithGold(tw =>
37 | {
38 | foreach (var filter in ngdocCache.Filters.OrderBy(f => f.Name))
39 | {
40 | tw.WriteLine("{0} {1}", filter.Name, filter.Offset);
41 | }
42 | });
43 | }
44 |
45 | [Test]
46 | public void CacheDefaultAngularFilters12()
47 | {
48 | DoTestSolution(@"..\angular.1.2.28.js");
49 | }
50 |
51 | [Test]
52 | public void CacheDefaultAngularFilters13()
53 | {
54 | DoTestSolution(@"..\angular.1.3.15.js");
55 | }
56 |
57 | [Test]
58 | public void CacheDefaultAngularFilters14()
59 | {
60 | DoTestSolution(@"..\angular.1.4.0.js");
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Feature/Services/CodeCompletion/AngularJsAttributesCompletionListTest.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2014 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System;
18 | using JetBrains.ProjectModel;
19 | using JetBrains.ReSharper.FeaturesTestFramework.Completion;
20 | using JetBrains.ReSharper.TestFramework;
21 | using NUnit.Framework;
22 |
23 | namespace JetBrains.ReSharper.Plugins.AngularJS.Feature.Services.CodeCompletion
24 | {
25 | [Category("Code Completion")]
26 | [TestFileExtension(HtmlProjectFileType.HTML_EXTENSION)]
27 | public class AngularJsAttributesCompletionListTest : WebCodeCompletionTestBase
28 | {
29 | private Version currentVersion;
30 |
31 | protected override string RelativeTestDataPath { get { return @"CodeCompletion\List"; } }
32 |
33 | protected override CodeCompletionTestType TestType
34 | {
35 | get { return CodeCompletionTestType.List; }
36 | }
37 |
38 | protected override string GetGoldTestDataPath(string fileName)
39 | {
40 | return base.GetGoldTestDataPath(fileName + AngularJsTestVersions.GetProductVersion(currentVersion));
41 | }
42 |
43 | [Test]
44 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
45 | public void TestShowAbbreviationsWithNoPrefix(Version version)
46 | {
47 | DoNamedTest2(version);
48 | }
49 |
50 | [Test]
51 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
52 | public void TestShowAbbreviationsWithMatchingPrefix(Version version)
53 | {
54 | DoNamedTest2(version);
55 | }
56 |
57 | [Test]
58 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
59 | public void TestShowItemsWithExactAbbreviationMatch(Version version)
60 | {
61 | DoNamedTest2(version);
62 | }
63 |
64 | [Test]
65 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
66 | public void TestShowItemsWithPatternAbbreviationMatch(Version version)
67 | {
68 | DoNamedTest2(version);
69 | }
70 |
71 | [Test]
72 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
73 | public void TestShowItemsWithPatternNotIncludingAbbreviation(Version version)
74 | {
75 | DoNamedTest2(version);
76 | }
77 |
78 | [Test]
79 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
80 | public void TestShowItemsWithPatternIncludingAbbreviation(Version version)
81 | {
82 | DoNamedTest2(version);
83 | }
84 |
85 | [Test]
86 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
87 | public void TestShowItemsWithCaretInMiddleOfCompletionPrefix(Version version)
88 | {
89 | DoNamedTest2(version);
90 | }
91 |
92 | [Test]
93 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
94 | public void TestDoesNotIncludeAttributesAlreadyUsed(Version version)
95 | {
96 | DoNamedTest2(version);
97 | }
98 |
99 | private void DoNamedTest2(Version version)
100 | {
101 | currentVersion = version;
102 | DoNamedTest2(AngularJsTestVersions.GetAngularJsVersion(BaseTestDataPath, version));
103 | }
104 | }
105 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Feature/Services/CodeCompletion/AngularJsAttributesDoubleCompletionListTest.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2014 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System;
18 | using System.Collections.Generic;
19 | using JetBrains.ProjectModel;
20 | using JetBrains.ReSharper.FeaturesTestFramework.Completion;
21 | using JetBrains.ReSharper.TestFramework;
22 | using JetBrains.Util;
23 | using NUnit.Framework;
24 |
25 | namespace JetBrains.ReSharper.Plugins.AngularJS.Feature.Services.CodeCompletion
26 | {
27 | [Category("Code Completion")]
28 | [TestFileExtension(HtmlProjectFileType.HTML_EXTENSION)]
29 | public class AngularJsAttributesDoubleCompletionListTest : WebCodeCompletionTestBase
30 | {
31 | private Version currentVersion;
32 |
33 | protected override string RelativeTestDataPath { get { return @"CodeCompletion\Double\List"; } }
34 |
35 | protected override CodeCompletionTestType TestType
36 | {
37 | get { return CodeCompletionTestType.List; }
38 | }
39 |
40 | protected override string GetGoldTestDataPath(string fileName)
41 | {
42 | return base.GetGoldTestDataPath(fileName + AngularJsTestVersions.GetProductVersion(currentVersion));
43 | }
44 |
45 | [Test]
46 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
47 | public void TestShowAllItemsOnDoubleCompletionWithNoPrefix(Version version)
48 | {
49 | DoNamedTest2(version);
50 | }
51 |
52 | [Test]
53 | [TestCaseSource(typeof (AngularJsTestVersions), "Versions")]
54 | public void TestShowMatchingItemsOnDoubleCompletionWithPrefix(Version version)
55 | {
56 | DoNamedTest2(version);
57 | }
58 |
59 | private void DoNamedTest2(Version version)
60 | {
61 | currentVersion = version;
62 | DoNamedTest2();
63 | }
64 |
65 | protected override IEnumerable GetFilesToIncludeInSolution(IEnumerable files)
66 | {
67 | return files.Concat(FileSystemPath.Parse(AngularJsTestVersions.GetAngularJsVersion(BaseTestDataPath, currentVersion)));
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Psi/AngularJs/AngularJsLanguageTests.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2013 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System;
18 | using JetBrains.ReSharper.Psi;
19 | using JetBrains.TestFramework;
20 | using NUnit.Framework;
21 |
22 | namespace JetBrains.ReSharper.Plugins.AngularJS.Psi.AngularJs
23 | {
24 | [TestFixture]
25 | public class AngularJsLanguageTests : BaseTest
26 | {
27 | [Test]
28 | public void LanguageIsRegistered()
29 | {
30 | Assert.NotNull(Languages.Instance.GetLanguageByName(AngularJsLanguage.Name));
31 | }
32 |
33 | [Test, Explicit]
34 | public void DumpLanguages()
35 | {
36 | foreach (var language in Languages.Instance.All)
37 | Console.WriteLine(language.PresentableName);
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Psi/AngularJs/Parsing/AngularJsLexerTest.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2013 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System.IO;
18 | using System.Text.RegularExpressions;
19 | using JetBrains.ProjectModel;
20 | using JetBrains.ReSharper.Psi.Parsing;
21 | using JetBrains.ReSharper.TestFramework;
22 | using JetBrains.Text;
23 | using NUnit.Framework;
24 |
25 | namespace JetBrains.ReSharper.Plugins.AngularJS.Psi.AngularJs.Parsing
26 | {
27 | [TestFileExtension(JavaScriptProjectFileType.JS_EXTENSION)]
28 | public class AngularJsLexerTest : LexerTestBase
29 | {
30 | protected override string RelativeTestDataPath
31 | {
32 | get { return @"Psi\lexing"; }
33 | }
34 |
35 | protected override ILexer CreateLexer(StreamReader sr)
36 | {
37 | var buffer = new StringBuffer(sr.ReadToEnd());
38 | return new AngularJsLexerGenerated(buffer);
39 | }
40 |
41 | protected override void WriteToken(TextWriter writer, ILexer lexer)
42 | {
43 | var tokenText = lexer.GetCurrTokenText();
44 | tokenText = Regex.Replace(tokenText, @"\p{Cc}", a => string.Format("[{0:X2}]", (byte)a.Value[0]));
45 | writer.WriteLine("{0} «{1}»", lexer.TokenType, tokenText);
46 | }
47 |
48 | [TestCase("expression")]
49 | [TestCase("identifier")]
50 | [TestCase("key_value")]
51 | [TestCase("keyword")]
52 | [TestCase("number")]
53 | [TestCase("string")]
54 | public void TestFiles(string file)
55 | {
56 | // Note that the "string" file for the IntelliJ plugin actually picks out invalid escape sequences
57 | DoOneTest(file);
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/Psi/JavaScript/JavaScriptResolveTestBase.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2015 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using System;
18 | using System.Collections.Generic;
19 | using JetBrains.ProjectModel;
20 | using JetBrains.ReSharper.Psi;
21 | using JetBrains.ReSharper.Psi.JavaScript.LanguageImpl;
22 | using JetBrains.ReSharper.Psi.Resolve;
23 | using JetBrains.ReSharper.Psi.Util;
24 | using JetBrains.ReSharper.TestFramework;
25 | using JetBrains.ReSharper.TestFramework.Components.Psi;
26 |
27 | namespace JetBrains.ReSharper.Plugins.AngularJS.Psi.JavaScript
28 | {
29 | [TestFileExtension(JavaScriptProjectFileType.JS_EXTENSION)]
30 | public abstract class JavaScriptResolveTestBase : ReferenceTestBase
31 | {
32 | protected override string RelativeTestDataPath
33 | {
34 | get { return @"psi\JavaScript\Resolve"; }
35 | }
36 |
37 | protected override bool MergeDuplicateCandidates
38 | {
39 | get { return true; }
40 | }
41 |
42 | protected override bool AcceptReference(IReference reference)
43 | {
44 | return true;
45 | }
46 |
47 | protected override void DoTest()
48 | {
49 | Solution.GetPsiServices().GetComponent().ManualFlushChanged();
50 | base.DoTest();
51 | }
52 |
53 | protected override string Format (
54 | IDeclaredElement declaredElement,
55 | ISubstitution substitution,
56 | PsiLanguageType languageType,
57 | DeclaredElementPresenterStyle presenter,
58 | IProject testProject,
59 | IReference reference)
60 | {
61 | if (declaredElement == null)
62 | return "null";
63 |
64 | // Output the element like it is in the QuickDoc - element name + type
65 | return DeclaredElementPresenter.Format (JavaScriptLanguage.Instance, XmlDocPresenterUtil.MemberPresentationStyle,
66 | declaredElement, EmptySubstitution.INSTANCE);
67 | }
68 | }
69 | }
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/TestEnvironment.cs:
--------------------------------------------------------------------------------
1 | #region license
2 | // Copyright 2014 JetBrains s.r.o.
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | #endregion
16 |
17 | using JetBrains.Application.BuildScript.Application.Zones;
18 | using JetBrains.ReSharper.TestFramework;
19 | using JetBrains.TestFramework;
20 | using JetBrains.TestFramework.Application.Zones;
21 | using NUnit.Framework;
22 |
23 | [assembly: RequiresSTA]
24 |
25 | [ZoneDefinition]
26 | public interface IAngularJsTestZone : ITestsZone, IRequire
27 | {
28 | }
29 |
30 | [SetUpFixture]
31 | public class TestEnvironmentAssembly : ExtensionTestEnvironmentAssembly
32 | {
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net45
5 | false
6 |
7 |
8 |
9 | x86
10 |
11 |
12 |
13 | x86
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/test/src/test.resharper-angularjs/tests.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | CSharp50
--------------------------------------------------------------------------------
/updates.xslt:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | https://github.com/JetBrains/resharper-angularjs/wiki/Release-Notes
25 |
26 |
27 |
28 | A minor upgrade is available.
29 |
30 |
31 |
32 | JetBrains
33 | AngularJS
34 |
35 |
36 | true
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------