]> git.proxmox.com Git - extjs.git/blame - extjs/classic/classic/test/specs/grid/filters/filter/Boolean.js
add extjs 6.0.1 sources
[extjs.git] / extjs / classic / classic / test / specs / grid / filters / filter / Boolean.js
CommitLineData
6527f429
DM
1describe('Ext.grid.filters.filter.Boolean', function() {\r
2 var wasCalled = false,\r
3 grid, store;\r
4\r
5 function createGrid(storeCfg, gridCfg) {\r
6 store = new Ext.data.Store(Ext.apply({\r
7 storeId:'simpsonsStore',\r
8 fields:['name', 'email', 'phone', 'adult'],\r
9 data: [\r
10 { 'name': 'Lisa', 'email':'lisa@simpsons.com', 'phone':'555-111-1224', 'adult': false },\r
11 { 'name': 'Bart', 'email':'bart@simpsons.com', 'phone':'555-222-1234', 'adult': false },\r
12 { 'name': 'Homer', 'email':'homer@simpsons.com', 'phone':'555-222-1244', 'adult': true },\r
13 { 'name': 'Marge', 'email':'marge@simpsons.com', 'phone':'555-222-1254', 'adult': true }\r
14 ]\r
15 }, storeCfg));\r
16\r
17 grid = new Ext.grid.Panel(Ext.apply({\r
18 title: 'Simpsons',\r
19 store: store,\r
20 autoLoad: true,\r
21 columns: [\r
22 { header: 'Name', dataIndex: 'name', width: 100 },\r
23 { header: 'Email', dataIndex: 'email', width: 100 },\r
24 { header: 'Phone', dataIndex: 'phone', width: 100 },\r
25 { header: 'Adult', dataIndex: 'adult', width: 100 }\r
26 ],\r
27\r
28 // We need programmatic mouseover events to be handled inline so we can test effects.\r
29 viewConfig: {\r
30 mouseOverOutBuffer: false,\r
31 deferHighlight: false\r
32 },\r
33 plugins: [{\r
34 ptype: 'gridfilters'\r
35 }],\r
36 height: 200,\r
37 width: 400,\r
38 renderTo: Ext.getBody()\r
39 }, gridCfg));\r
40 }\r
41\r
42 afterEach(function () {\r
43 store.destroy();\r
44 Ext.destroy(grid);\r
45 grid = store = null;\r
46 wasCalled = false;\r
47 });\r
48\r
49 describe('initializing', function () {\r
50 describe('setting as active', function () {\r
51 describe('defined value', function () {\r
52 it('should set as active when value is `true`', function () {\r
53 createGrid(null, {\r
54 columns: [\r
55 { header: 'Name', dataIndex: 'name', width: 100 },\r
56 { header: 'Adult', dataIndex: 'adult',\r
57 filter: {\r
58 type: 'boolean',\r
59 value: true\r
60 },\r
61 width: 100 }\r
62 ]\r
63 });\r
64\r
65 expect(grid.columnManager.getHeaderByDataIndex('adult').filter.active).toBe(true);\r
66 });\r
67\r
68 it('should set as active when value is `false`', function () {\r
69 createGrid(null, {\r
70 columns: [\r
71 { header: 'Name', dataIndex: 'name', width: 100 },\r
72 { header: 'Adult', dataIndex: 'adult',\r
73 filter: {\r
74 type: 'boolean',\r
75 value: false\r
76 },\r
77 width: 100 }\r
78 ]\r
79 });\r
80\r
81 expect(grid.columnManager.getHeaderByDataIndex('adult').filter.active).toBe(true);\r
82 });\r
83\r
84 it('should set as active when value is `null`', function () {\r
85 createGrid(null, {\r
86 columns: [\r
87 { header: 'Name', dataIndex: 'name', width: 100 },\r
88 { header: 'Adult', dataIndex: 'adult',\r
89 filter: {\r
90 type: 'boolean',\r
91 value: null\r
92 },\r
93 width: 100 }\r
94 ]\r
95 });\r
96\r
97 expect(grid.columnManager.getHeaderByDataIndex('adult').filter.active).toBe(true);\r
98 });\r
99 });\r
100\r
101 describe('undefined value', function () {\r
102 it('should not set as active when value is omitted', function () {\r
103 createGrid(null, {\r
104 columns: [\r
105 { header: 'Name', dataIndex: 'name', width: 100 },\r
106 { header: 'Adult', dataIndex: 'adult',\r
107 filter: {\r
108 type: 'boolean'\r
109 },\r
110 width: 100 }\r
111 ]\r
112 });\r
113\r
114 expect(grid.columnManager.getHeaderByDataIndex('adult').filter.active).toBe(false);\r
115 });\r
116\r
117 it('should not set as active when value is `undefined`', function () {\r
118 createGrid(null, {\r
119 columns: [\r
120 { header: 'Name', dataIndex: 'name', width: 100 },\r
121 { header: 'Adult', dataIndex: 'adult',\r
122 filter: {\r
123 type: 'boolean',\r
124 value: undefined\r
125 },\r
126 width: 100 }\r
127 ]\r
128 });\r
129\r
130 expect(grid.columnManager.getHeaderByDataIndex('adult').filter.active).toBe(false);\r
131 });\r
132 });\r
133 });\r
134 });\r
135});\r