]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | describe('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 |