blob: 8145611551d829e508336af17521e30cfcf07a87 [file] [log] [blame]
Akronad894832016-06-08 18:24:48 +02001define(
2 ['selectMenu'],
3 function (selectMenuClass) {
4
Akronaba7a5a2016-08-15 21:58:33 +02005 /*
6 * Check for preselected values
7 */
8
Akronad894832016-06-08 18:24:48 +02009 describe('KorAP.SelectMenu', function () {
10 var list = [
Akronaba7a5a2016-08-15 21:58:33 +020011 {
12 content : 'Poliqarp',
13 value : 'poliqarp',
14 desc : 'The Polish National Corpus QL'
15 },
16 {
17 content : 'Cosmas II',
18 value : 'cosmas2',
19 desc : 'The Polish National Corpus QL'
20 },
21 {
22 content : 'Annis',
23 value : 'annis'
24 },
25 {
26 content : 'CQL v1.2',
27 value : 'cql'
28 }
Akronad894832016-06-08 18:24:48 +020029 ];
Akron086fe5d2017-11-13 14:01:45 +010030
31 function _selectE() {
32 var div = document.createElement('div');
Akronaba7a5a2016-08-15 21:58:33 +020033 var element = div.appendChild(document.createElement('select'));
34 for (i in list) {
35 var opt = element.appendChild(document.createElement('option'));
36 opt.setAttribute('value', list[i].value);
37 opt.appendChild(document.createTextNode(list[i].content));
38 };
Akron086fe5d2017-11-13 14:01:45 +010039 return div;
40 };
41
42 it('should replace a select element', function () {
43 var div = _selectE();
Akronaba7a5a2016-08-15 21:58:33 +020044 var menu = selectMenuClass.create(div);
Akron086fe5d2017-11-13 14:01:45 +010045 var element = div.firstChild;
Akronad894832016-06-08 18:24:48 +020046
Akronaba7a5a2016-08-15 21:58:33 +020047 expect(element.style.display).toEqual('none');
Akronad894832016-06-08 18:24:48 +020048
Akronaba7a5a2016-08-15 21:58:33 +020049 // This selects the first item
50 expect(menu.select()).toEqual(0);
51 expect(menu._title.textContent).toEqual('Poliqarp');
52
53 // Now show the menu
54 menu.showSelected();
Akronad894832016-06-08 18:24:48 +020055
Akronaba7a5a2016-08-15 21:58:33 +020056 expect(menu.item(0).active()).toBe(true);
57 expect(menu.item(0).noMore()).toBe(true);
Akronad894832016-06-08 18:24:48 +020058
Akronaba7a5a2016-08-15 21:58:33 +020059 // TODO: Improve lcfield!!!!!!
60 expect(menu.shownItem(0).lcField()).toEqual(' poliqarp');
Akronad894832016-06-08 18:24:48 +020061 });
Akron7f613e02016-11-07 02:50:44 +010062
Akron086fe5d2017-11-13 14:01:45 +010063
Akron7f613e02016-11-07 02:50:44 +010064 it('should first show the selected value', function () {
Akron086fe5d2017-11-13 14:01:45 +010065 var div = _selectE();
66 var element = div.firstChild;
Akron7f613e02016-11-07 02:50:44 +010067
68 expect(element.selectedIndex).toEqual(0);
69
70 // Select annis
71 element.children[2].selected = true;
72
73 expect(element.selectedIndex).toEqual(2);
74
75 var menu = selectMenuClass.create(div);
76 menu.show(3);
77 expect(menu._title.textContent).toEqual('Annis');
78 });
Akron086fe5d2017-11-13 14:01:45 +010079
80 it('should be selectable via method', function () {
81 var div = _selectE();
82 var element = div.firstChild;
83 var menu = selectMenuClass.create(div);
84
85 expect(element.selectedIndex).toEqual(0);
86 menu.selectValue('annis');
87 expect(element.selectedIndex).toEqual(2);
88 });
Akronad894832016-06-08 18:24:48 +020089 });
90 }
91);