Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / chrome / test / data / webui / cr_elements / cr_checkbox_tests.js
blobb7c20d271c166666d2c9aca67f604705cf30a475
1 // Copyright 2015 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.
5 /** @fileoverview Suite of tests for cr-checkbox. */
6 cr.define('cr_checkbox', function() {
7   function registerTests() {
8     suite('CrCheckbox', function() {
9       /**
10        * Checkbox created before each test.
11        * @type {CrCheckbox}
12        */
13       var checkbox;
15       // Import cr_checkbox.html before running suite.
16       suiteSetup(function() {
17         return PolymerTest.importHtml(
18             'chrome://resources/cr_elements/v1_0/cr_checkbox/cr_checkbox.html');
19       });
21       // Initialize a checked cr-checkbox before each test.
22       setup(function(done) {
23         PolymerTest.clearBody();
24         checkbox = document.createElement('cr-checkbox');
25         checkbox.setAttribute('checked', '');
26         document.body.appendChild(checkbox);
28         // Allow for the checkbox to be created and attached.
29         setTimeout(done);
30       });
32       test('can toggle', function() {
33         assertTrue(checkbox.checked);
35         checkbox.toggle();
36         assertFalse(checkbox.checked);
37         assertFalse(checkbox.hasAttribute('checked'));
39         checkbox.toggle();
40         assertTrue(checkbox.checked);
41         assertTrue(checkbox.hasAttribute('checked'));
42       });
44       test('responds to checked attribute', function() {
45         assertTrue(checkbox.checked);
47         checkbox.removeAttribute('checked');
48         assertFalse(checkbox.checked);
50         checkbox.setAttribute('checked', '');
51         assertTrue(checkbox.checked);
52       });
54       test('fires a change event', function(done) {
55         checkbox.addEventListener('change', function() {
56           assertFalse(checkbox.checked);
57           done();
58         });
59         MockInteractions.tap(checkbox.$.checkbox);
60       });
62       test('does not change when disabled', function() {
63         checkbox.checked = false;
64         checkbox.setAttribute('disabled', '');
65         assertTrue(checkbox.disabled);
67         MockInteractions.tap(checkbox.$.checkbox);
68         assertFalse(checkbox.checked);
69         assertFalse(checkbox.$.checkbox.checked);
70       });
71     });
72   }
74   return {
75     registerTests: registerTests,
76   };
77 });