]> git.proxmox.com Git - extjs.git/blame - extjs/classic/classic/test/specs/form/RadioGroup.js
add extjs 6.0.1 sources
[extjs.git] / extjs / classic / classic / test / specs / form / RadioGroup.js
CommitLineData
6527f429
DM
1describe("Ext.form.RadioGroup", function() {\r
2 var group;\r
3\r
4 function makeGroup(items, cfg) {\r
5 group = new Ext.form.RadioGroup(Ext.apply({\r
6 renderTo: Ext.getBody(),\r
7 items: items\r
8 }, cfg));\r
9 }\r
10\r
11 afterEach(function() {\r
12 Ext.destroy(group);\r
13 group = null;\r
14 });\r
15\r
16 describe("setValue", function() {\r
17 it("should check the matching item", function() {\r
18 makeGroup([{\r
19 name: 'foo',\r
20 inputValue: 'a'\r
21 }, {\r
22 name: 'foo',\r
23 inputValue: 'b'\r
24 }, {\r
25 name: 'foo',\r
26 inputValue: 'c'\r
27 }]);\r
28\r
29 group.setValue({\r
30 foo: 'b'\r
31 });\r
32\r
33 expect(group.getValue()).toEqual({\r
34 foo: 'b'\r
35 });\r
36 });\r
37\r
38 describe("with a view model", function() {\r
39 it("should be able to set the value with inline data", function() {\r
40 var vm = new Ext.app.ViewModel({\r
41 data: {\r
42 theValue: {\r
43 foo: 'b'\r
44 }\r
45 }\r
46 });\r
47\r
48 makeGroup([{\r
49 name: 'foo',\r
50 inputValue: 'a'\r
51 }, {\r
52 name: 'foo',\r
53 inputValue: 'b'\r
54 }, {\r
55 name: 'foo',\r
56 inputValue: 'c'\r
57 }], {\r
58 viewModel: vm,\r
59 bind: {\r
60 value: '{theValue}'\r
61 }\r
62 });\r
63\r
64 vm.notify();\r
65\r
66 expect(group.getValue()).toEqual({\r
67 foo: 'b'\r
68 });\r
69 });\r
70\r
71 it("should be able to set the value with a defined viewmodel", function() {\r
72 Ext.define('spec.Bar', {\r
73 extend: 'Ext.app.ViewModel',\r
74 alias: 'viewmodel.bar',\r
75 data: {\r
76 theValue: {\r
77 foo: 'b'\r
78 }\r
79 }\r
80 });\r
81\r
82 makeGroup([{\r
83 name: 'foo',\r
84 inputValue: 'a'\r
85 }, {\r
86 name: 'foo',\r
87 inputValue: 'b'\r
88 }, {\r
89 name: 'foo',\r
90 inputValue: 'c'\r
91 }], {\r
92 viewModel: {\r
93 type: 'bar'\r
94 },\r
95 bind: {\r
96 value: '{theValue}'\r
97 }\r
98 });\r
99\r
100 group.getViewModel().notify();\r
101\r
102 expect(group.getValue()).toEqual({\r
103 foo: 'b'\r
104 });\r
105 Ext.undefine('spec.Bar');\r
106 Ext.Factory.viewModel.instance.clearCache();\r
107 });\r
108 });\r
109 });\r
110 \r
111 describe("ARIA", function() {\r
112 function expectAria(attr, value) {\r
113 jasmine.expectAriaAttr(group, attr, value);\r
114 }\r
115 \r
116 beforeEach(function() {\r
117 makeGroup([{\r
118 name: 'foo'\r
119 }, {\r
120 name: 'bar'\r
121 }, {\r
122 name: 'baz'\r
123 }]);\r
124 });\r
125 \r
126 describe("ariaEl", function() {\r
127 it("should have containerEl as ariaEl", function() {\r
128 expect(group.ariaEl).toBe(group.containerEl);\r
129 });\r
130 });\r
131 \r
132 describe("attributes", function() {\r
133 it("should have radiogroup role", function() {\r
134 expectAria('role', 'radiogroup');\r
135 });\r
136 \r
137 it("should have aria-invalid", function() {\r
138 expectAria('aria-invalid', 'false');\r
139 });\r
140 \r
141 it("should have aria-owns", function() {\r
142 var foo = group.down('[name=foo]').inputEl,\r
143 bar = group.down('[name=bar]').inputEl,\r
144 baz = group.down('[name=baz]').inputEl;\r
145 \r
146 expectAria('aria-owns', [foo.id, bar.id, baz.id].join(' '));\r
147 });\r
148 \r
149 describe("aria-required", function() {\r
150 it("should be false when allowBlank", function() {\r
151 expectAria('aria-required', 'false');\r
152 });\r
153 \r
154 it("should be true when !allowBlank", function() {\r
155 var group2 = new Ext.form.RadioGroup({\r
156 renderTo: Ext.getBody(),\r
157 allowBlank: false,\r
158 items: [{\r
159 name: 'foo'\r
160 }, {\r
161 name: 'bar'\r
162 }]\r
163 });\r
164 \r
165 jasmine.expectAriaAttr(group2, 'aria-required', 'true');\r
166 \r
167 Ext.destroy(group2);\r
168 group2 = null;\r
169 });\r
170 });\r
171 });\r
172 \r
173 describe("state", function() {\r
174 describe("aria-invalid", function() {\r
175 beforeEach(function() {\r
176 group.markInvalid(['foo']);\r
177 });\r
178 \r
179 it("should set aria-invalid to tru in markInvalid", function() {\r
180 expectAria('aria-invalid', 'true');\r
181 });\r
182 \r
183 it("should set aria-invalid to false in clearInvalid", function() {\r
184 group.clearInvalid();\r
185 \r
186 expectAria('aria-invalid', 'false');\r
187 });\r
188 });\r
189 });\r
190 });\r
191});