1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5'use strict';
6
7base.require('ui.dom_helpers');
8
9base.unittest.testSuite('ui.dom_helpers', function() {
10
11  test('simpleSpanAndDiv', function() {
12    var divEl = ui.createDiv({
13      className: 'a-div-class', parent: document.body
14    });
15    var testText = 'some span text';
16    var spanEl = ui.createSpan({
17      className: 'a-span-class',
18      textContent: testText,
19      parent: divEl
20    });
21    var eltInDocument = document.querySelector('.a-div-class>.a-span-class');
22    assertEquals(eltInDocument.textContent, testText);
23    eltInDocument.parentElement.removeChild(eltInDocument);
24  });
25
26  test('checkboxFromDefaults', function() {
27    var target = {foo: undefined};
28    var cb = ui.createCheckBox(target, 'foo', 'myCheckBox', false, 'Foo');
29    assertEquals(false, target.foo);
30  });
31
32  test('checkboxFromSettings', function() {
33    base.Settings.set('myCheckBox', true);
34    var target = {foo: undefined};
35    var cb = ui.createCheckBox(target, 'foo', 'myCheckBox', false, 'Foo');
36    assertEquals(true, target.foo);
37  });
38
39  test('checkboxChanged', function() {
40    var target = {foo: undefined};
41    var cb = ui.createCheckBox(target, 'foo', 'myCheckBox', false, 'Foo');
42    cb.checked = true;
43
44    assertEquals(true, base.Settings.get('myCheckBox', undefined));
45    assertEquals(true, target.foo);
46  });
47
48  test('selectorSettingsAlreaySet', function() {
49    base.Settings.set('myScale', 0.25);
50
51    var target = {
52      scale: 314
53    };
54    var sel = ui.createSelector(
55        target, 'scale',
56        'myScale', 0.375,
57        [{label: '6.25%', value: 0.0625},
58         {label: '12.5%', value: 0.125},
59         {label: '25%', value: 0.25},
60         {label: '37.5%', value: 0.375},
61         {label: '50%', value: 0.5},
62         {label: '75%', value: 0.75},
63         {label: '100%', value: 1},
64         {label: '200%', value: 2}
65        ]);
66    assertEquals(0.25, target.scale);
67    assertEquals(2, sel.selectedIndex);
68  });
69
70  test('selectorSettingsDefault', function() {
71    var target = {
72      scale: 314
73    };
74    var sel = ui.createSelector(
75        target, 'scale',
76        'myScale', 0.375,
77        [{label: '6.25%', value: 0.0625},
78         {label: '12.5%', value: 0.125},
79         {label: '25%', value: 0.25},
80         {label: '37.5%', value: 0.375},
81         {label: '50%', value: 0.5},
82         {label: '75%', value: 0.75},
83         {label: '100%', value: 1},
84         {label: '200%', value: 2}
85        ]);
86    assertEquals(0.375, target.scale);
87    assertEquals(3, sel.selectedIndex);
88  });
89
90  test('selectorSettingsChanged', function() {
91    var target = {
92      scale: 314
93    };
94    var sel = ui.createSelector(
95        target, 'scale',
96        'myScale', 0.375,
97        [{label: '6.25%', value: 0.0625},
98         {label: '12.5%', value: 0.125},
99         {label: '25%', value: 0.25},
100         {label: '37.5%', value: 0.375},
101         {label: '50%', value: 0.5},
102         {label: '75%', value: 0.75},
103         {label: '100%', value: 1},
104         {label: '200%', value: 2}
105        ]);
106    assertEquals(0.375, sel.selectedValue);
107    sel.selectedValue = 0.75;
108    assertEquals(0.75, target.scale);
109    assertEquals(0.75, sel.selectedValue);
110    assertEquals(0.75, base.Settings.get('myScale', undefined));
111  });
112});
113