Best JavaScript code snippet using taiko
checkbox_test.js
Source:checkbox_test.js
1// Copyright 2009 The Closure Library Authors. All Rights Reserved.2//3// Licensed under the Apache License, Version 2.0 (the "License");4// you may not use this file except in compliance with the License.5// You may obtain a copy of the License at6//7// http://www.apache.org/licenses/LICENSE-2.08//9// Unless required by applicable law or agreed to in writing, software10// distributed under the License is distributed on an "AS-IS" BASIS,11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12// See the License for the specific language governing permissions and13// limitations under the License.14goog.provide('goog.ui.CheckboxTest');15goog.setTestOnly('goog.ui.CheckboxTest');16goog.require('goog.a11y.aria');17goog.require('goog.a11y.aria.Role');18goog.require('goog.a11y.aria.State');19goog.require('goog.dom');20goog.require('goog.dom.classlist');21goog.require('goog.events');22goog.require('goog.events.KeyCodes');23goog.require('goog.testing.events');24goog.require('goog.testing.jsunit');25goog.require('goog.ui.Checkbox');26goog.require('goog.ui.CheckboxRenderer');27goog.require('goog.ui.Component');28goog.require('goog.ui.ControlRenderer');29goog.require('goog.ui.decorate');30var checkbox;31function setUp() {32 checkbox = new goog.ui.Checkbox();33}34function tearDown() {35 checkbox.dispose();36}37function testClassNames() {38 checkbox.createDom();39 checkbox.setChecked(false);40 assertSameElements('classnames of unchecked checkbox',41 ['goog-checkbox', 'goog-checkbox-unchecked'],42 goog.dom.classlist.get(checkbox.getElement()));43 checkbox.setChecked(true);44 assertSameElements('classnames of checked checkbox',45 ['goog-checkbox', 'goog-checkbox-checked'],46 goog.dom.classlist.get(checkbox.getElement()));47 checkbox.setChecked(null);48 assertSameElements('classnames of partially checked checkbox',49 ['goog-checkbox', 'goog-checkbox-undetermined'],50 goog.dom.classlist.get(checkbox.getElement()));51 checkbox.setEnabled(false);52 assertSameElements('classnames of partially checked disabled checkbox',53 ['goog-checkbox',54 'goog-checkbox-undetermined',55 'goog-checkbox-disabled'],56 goog.dom.classlist.get(checkbox.getElement()));57}58function testIsEnabled() {59 assertTrue('enabled by default', checkbox.isEnabled());60 checkbox.setEnabled(false);61 assertFalse('has been disabled', checkbox.isEnabled());62}63function testCheckedState() {64 assertTrue('unchecked by default', !checkbox.isChecked() &&65 checkbox.isUnchecked() && !checkbox.isUndetermined());66 checkbox.setChecked(true);67 assertTrue('set to checked', checkbox.isChecked() &&68 !checkbox.isUnchecked() && !checkbox.isUndetermined());69 checkbox.setChecked(null);70 assertTrue('set to partially checked', !checkbox.isChecked() &&71 !checkbox.isUnchecked() && checkbox.isUndetermined());72}73function testToggle() {74 checkbox.setChecked(null);75 checkbox.toggle();76 assertTrue('undetermined -> checked', checkbox.getChecked());77 checkbox.toggle();78 assertFalse('checked -> unchecked', checkbox.getChecked());79 checkbox.toggle();80 assertTrue('unchecked -> checked', checkbox.getChecked());81}82function testEvents() {83 checkbox.render();84 var events = [];85 goog.events.listen(checkbox,86 [goog.ui.Component.EventType.CHECK,87 goog.ui.Component.EventType.UNCHECK,88 goog.ui.Component.EventType.CHANGE],89 function(e) {90 events.push(e.type);91 });92 checkbox.setEnabled(false);93 goog.testing.events.fireClickSequence(checkbox.getElement());94 assertArrayEquals('disabled => no events', [], events);95 assertFalse('checked state did not change', checkbox.getChecked());96 events = [];97 checkbox.setEnabled(true);98 goog.testing.events.fireClickSequence(checkbox.getElement());99 assertArrayEquals('CHECK+CHANGE fired', ['check', 'change'], events);100 assertTrue('checkbox became checked', checkbox.getChecked());101 events = [];102 goog.testing.events.fireClickSequence(checkbox.getElement());103 assertArrayEquals('UNCHECK+CHANGE fired', ['uncheck', 'change'], events);104 assertFalse('checkbox became unchecked', checkbox.getChecked());105 events = [];106 goog.events.listen(checkbox, goog.ui.Component.EventType.CHECK,107 function(e) {108 e.preventDefault();109 });110 goog.testing.events.fireClickSequence(checkbox.getElement());111 assertArrayEquals('CHECK event fired', ['check'], events);112 assertFalse('toggling has been prevented', checkbox.getChecked());113}114function testCheckboxAriaLabelledby() {115 var label = goog.dom.createElement('div');116 var label2 = goog.dom.createElement('div', {id: checkbox.makeId('foo')});117 document.body.appendChild(label);118 document.body.appendChild(label2);119 try {120 checkbox.setChecked(false);121 checkbox.setLabel(label);122 checkbox.render(label);123 assertNotNull(checkbox.getElement());124 assertEquals(label.id,125 goog.a11y.aria.getState(checkbox.getElement(),126 goog.a11y.aria.State.LABELLEDBY));127 checkbox.setLabel(label2);128 assertEquals(label2.id,129 goog.a11y.aria.getState(checkbox.getElement(),130 goog.a11y.aria.State.LABELLEDBY));131 } finally {132 document.body.removeChild(label);133 document.body.removeChild(label2);134 }135}136function testLabel() {137 var label = goog.dom.createElement('div');138 document.body.appendChild(label);139 try {140 checkbox.setChecked(false);141 checkbox.setLabel(label);142 checkbox.render(label);143 // Clicking on label toggles checkbox.144 goog.testing.events.fireClickSequence(label);145 assertTrue('checkbox toggled if the label is clicked',146 checkbox.getChecked());147 goog.testing.events.fireClickSequence(checkbox.getElement());148 assertFalse('checkbox toggled if it is clicked', checkbox.getChecked());149 // Test that mouse events on the label have the correct effect on the150 // checkbox state when it is enabled.151 checkbox.setEnabled(true);152 goog.testing.events.fireMouseOverEvent(label);153 assertTrue(checkbox.hasState(goog.ui.Component.State.HOVER));154 assertContains('checkbox gets hover state on mouse over',155 'goog-checkbox-hover', goog.dom.classlist.get(checkbox.getElement()));156 goog.testing.events.fireMouseDownEvent(label);157 assertTrue(checkbox.hasState(goog.ui.Component.State.ACTIVE));158 assertContains('checkbox gets active state on label mousedown',159 'goog-checkbox-active',160 goog.dom.classlist.get(checkbox.getElement()));161 goog.testing.events.fireMouseOutEvent(checkbox.getElement());162 assertFalse(checkbox.hasState(goog.ui.Component.State.HOVER));163 assertNotContains('checkbox does not have hover state after mouse out',164 'goog-checkbox-hover', goog.dom.classlist.get(checkbox.getElement()));165 assertFalse(checkbox.hasState(goog.ui.Component.State.ACTIVE));166 assertNotContains('checkbox does not have active state after mouse out',167 'goog-checkbox-active', goog.dom.classlist.get(checkbox.getElement()));168 // Test label mouse events on disabled checkbox.169 checkbox.setEnabled(false);170 goog.testing.events.fireMouseOverEvent(label);171 assertFalse(checkbox.hasState(goog.ui.Component.State.HOVER));172 assertNotContains(173 'disabled checkbox does not get hover state on mouseover',174 'goog-checkbox-hover', goog.dom.classlist.get(checkbox.getElement()));175 goog.testing.events.fireMouseDownEvent(label);176 assertFalse(checkbox.hasState(goog.ui.Component.State.ACTIVE));177 assertNotContains('disabled checkbox does not get active state mousedown',178 'goog-checkbox-active',179 goog.dom.classlist.get(checkbox.getElement()));180 goog.testing.events.fireMouseOutEvent(checkbox.getElement());181 assertFalse(checkbox.hasState(goog.ui.Component.State.ACTIVE));182 assertNotContains('checkbox does not get stuck in hover state',183 'goog-checkbox-hover', goog.dom.classlist.get(checkbox.getElement()));184 // Making the label null prevents it from affecting checkbox state.185 checkbox.setEnabled(true);186 checkbox.setLabel(null);187 goog.testing.events.fireClickSequence(label);188 assertFalse('label element deactivated', checkbox.getChecked());189 goog.testing.events.fireClickSequence(checkbox.getElement());190 assertTrue('checkbox still active', checkbox.getChecked());191 } finally {192 document.body.removeChild(label);193 }194}195function testConstructor() {196 assertEquals('state is unchecked', goog.ui.Checkbox.State.UNCHECKED,197 checkbox.getChecked());198 var testCheckboxWithState = new goog.ui.Checkbox(199 goog.ui.Checkbox.State.UNDETERMINED);200 assertNotNull('checkbox created with custom state', testCheckboxWithState);201 assertEquals('checkbox state is undetermined',202 goog.ui.Checkbox.State.UNDETERMINED,203 testCheckboxWithState.getChecked());204 testCheckboxWithState.dispose();205}206function testCustomRenderer() {207 var cssClass = 'my-custom-checkbox';208 var renderer = goog.ui.ControlRenderer.getCustomRenderer(209 goog.ui.CheckboxRenderer, cssClass);210 var customCheckbox = new goog.ui.Checkbox(211 undefined, undefined, renderer);212 customCheckbox.createDom();213 assertElementsEquals(214 ['my-custom-checkbox', 'my-custom-checkbox-unchecked'],215 goog.dom.classlist.get(customCheckbox.getElement()));216 customCheckbox.setChecked(true);217 assertElementsEquals(218 ['my-custom-checkbox', 'my-custom-checkbox-checked'],219 goog.dom.classlist.get(customCheckbox.getElement()));220 customCheckbox.setChecked(null);221 assertElementsEquals(222 ['my-custom-checkbox', 'my-custom-checkbox-undetermined'],223 goog.dom.classlist.get(customCheckbox.getElement()));224 customCheckbox.dispose();225}226function testGetAriaRole() {227 checkbox.createDom();228 assertNotNull(checkbox.getElement());229 assertEquals("Checkbox's ARIA role should be 'checkbox'",230 goog.a11y.aria.Role.CHECKBOX,231 goog.a11y.aria.getRole(checkbox.getElement()));232}233function testCreateDomUpdateAriaState() {234 checkbox.createDom();235 assertNotNull(checkbox.getElement());236 assertEquals('Checkbox must have default false ARIA state aria-checked',237 'false', goog.a11y.aria.getState(checkbox.getElement(),238 goog.a11y.aria.State.CHECKED));239 checkbox.setChecked(goog.ui.Checkbox.State.CHECKED);240 assertEquals('Checkbox must have true ARIA state aria-checked', 'true',241 goog.a11y.aria.getState(checkbox.getElement(),242 goog.a11y.aria.State.CHECKED));243 checkbox.setChecked(goog.ui.Checkbox.State.UNCHECKED);244 assertEquals('Checkbox must have false ARIA state aria-checked', 'false',245 goog.a11y.aria.getState(checkbox.getElement(),246 goog.a11y.aria.State.CHECKED));247 checkbox.setChecked(goog.ui.Checkbox.State.UNDETERMINED);248 assertEquals('Checkbox must have mixed ARIA state aria-checked', 'mixed',249 goog.a11y.aria.getState(checkbox.getElement(),250 goog.a11y.aria.State.CHECKED));251}252function testDecorateUpdateAriaState() {253 var decorateSpan = goog.dom.getElement('decorate');254 checkbox.decorate(decorateSpan);255 assertEquals('Checkbox must have default false ARIA state aria-checked',256 'false', goog.a11y.aria.getState(checkbox.getElement(),257 goog.a11y.aria.State.CHECKED));258 checkbox.setChecked(goog.ui.Checkbox.State.CHECKED);259 assertEquals('Checkbox must have true ARIA state aria-checked', 'true',260 goog.a11y.aria.getState(checkbox.getElement(),261 goog.a11y.aria.State.CHECKED));262 checkbox.setChecked(goog.ui.Checkbox.State.UNCHECKED);263 assertEquals('Checkbox must have false ARIA state aria-checked', 'false',264 goog.a11y.aria.getState(checkbox.getElement(),265 goog.a11y.aria.State.CHECKED));266 checkbox.setChecked(goog.ui.Checkbox.State.UNDETERMINED);267 assertEquals('Checkbox must have mixed ARIA state aria-checked', 'mixed',268 goog.a11y.aria.getState(checkbox.getElement(),269 goog.a11y.aria.State.CHECKED));270}271function testSpaceKey() {272 var normalSpan = goog.dom.getElement('normal');273 checkbox.decorate(normalSpan);274 assertEquals('default state is unchecked',275 goog.ui.Checkbox.State.UNCHECKED, checkbox.getChecked());276 goog.testing.events.fireKeySequence(normalSpan, goog.events.KeyCodes.SPACE);277 assertEquals('SPACE toggles checkbox to be checked',278 goog.ui.Checkbox.State.CHECKED, checkbox.getChecked());279 goog.testing.events.fireKeySequence(normalSpan, goog.events.KeyCodes.SPACE);280 assertEquals('another SPACE toggles checkbox to be unchecked',281 goog.ui.Checkbox.State.UNCHECKED, checkbox.getChecked());282 // Enter for example doesn't work283 goog.testing.events.fireKeySequence(normalSpan, goog.events.KeyCodes.ENTER);284 assertEquals('Enter leaves checkbox unchecked',285 goog.ui.Checkbox.State.UNCHECKED, checkbox.getChecked());286}287function testDecorate() {288 var normalSpan = goog.dom.getElement('normal');289 var checkedSpan = goog.dom.getElement('checked');290 var uncheckedSpan = goog.dom.getElement('unchecked');291 var undeterminedSpan = goog.dom.getElement('undetermined');292 var disabledSpan = goog.dom.getElement('disabled');293 validateCheckBox(normalSpan, goog.ui.Checkbox.State.UNCHECKED);294 validateCheckBox(checkedSpan, goog.ui.Checkbox.State.CHECKED);295 validateCheckBox(uncheckedSpan, goog.ui.Checkbox.State.UNCHECKED);296 validateCheckBox(undeterminedSpan, goog.ui.Checkbox.State.UNDETERMINED);297 validateCheckBox(disabledSpan, goog.ui.Checkbox.State.UNCHECKED, true);298}299function validateCheckBox(span, state, opt_disabled) {300 var testCheckbox = goog.ui.decorate(span);301 assertNotNull('checkbox created', testCheckbox);302 assertEquals('decorate was successful',303 goog.ui.Checkbox, testCheckbox.constructor);304 assertEquals('checkbox state should be: ' + state, state,305 testCheckbox.getChecked());306 assertEquals('checkbox is ' + (!opt_disabled ? 'enabled' : 'disabled'),307 !opt_disabled, testCheckbox.isEnabled());308 testCheckbox.dispose();...
options.js
Source:options.js
1define( [2 "qunit",3 "jquery",4 "ui/widgets/checkboxradio"5], function( QUnit, $ ) {6QUnit.module( "Checkboxradio: options" );7function assertDisabled( checkbox, assert ) {8 assert.hasClasses( checkbox.checkboxradio( "widget" ), "ui-state-disabled",9 "label gets ui-state-disabled" );10 assert.strictEqual( checkbox.is( ":disabled" ), true, "checkbox is disabled" );11}12function assertEnabled( checkbox, assert ) {13 assert.lacksClasses( checkbox.checkboxradio( "widget" ), "ui-state-disabled",14 "label has ui-state-disabled removed when disabled set to false" );15 assert.strictEqual( checkbox.is( ":disabled" ), false,16 "checkbox has disabled prop removed when disabled set to false" );17}18QUnit.test( "disabled", function( assert ) {19 assert.expect( 6 );20 var checkbox = $( "#checkbox-option-disabled" );21 checkbox.checkboxradio( {22 disabled: true23 } );24 assertDisabled( checkbox, assert );25 checkbox.checkboxradio( "option", "disabled", false );26 assertEnabled( checkbox, assert );27 checkbox.checkboxradio( "option", "disabled", true );28 assertDisabled( checkbox, assert );29} );30QUnit.test( "disabled - prop true on init", function( assert ) {31 assert.expect( 2 );32 var checkbox = $( "#checkbox-option-disabled" );33 checkbox.prop( "disabled", true );34 checkbox.checkboxradio();35 assertDisabled( checkbox, assert );36} );37QUnit.test( "disabled - explicit null value, checks the DOM", function( assert ) {38 assert.expect( 2 );39 var checkbox = $( "#checkbox-option-disabled" );40 checkbox.prop( "disabled", true );41 checkbox.checkboxradio( {42 disabled: null43 } );44 assertDisabled( checkbox, assert );45} );46function assertNoIcon( assert, checkbox ) {47 assert.strictEqual( checkbox.checkboxradio( "widget" ).find( "span.ui-icon" ).length, 0,48 "Label does not contain an icon" );49}50function assertIcon( checkbox, icon, assert ) {51 var iconElement = checkbox.checkboxradio( "widget" ).find( ".ui-icon" );52 icon = icon || "blank";53 assert.strictEqual( iconElement.length, 1,54 "Label contains icon" );55 assert.hasClasses( iconElement, "ui-checkboxradio-icon ui-corner-all ui-icon " +56 "ui-icon-background ui-icon-" + icon,57 "Icon has proper classes" );58 if ( icon === "blank" ) {59 assert.lacksClasses( iconElement, "ui-icon-check ui-state-checked" );60 }61}62QUnit.test( "icon - false on init", function( assert ) {63 var checkbox = $( "#checkbox-option-icon" );64 assert.expect( 1 );65 checkbox.checkboxradio( { icon: false } );66 assertNoIcon( assert, checkbox );67} );68QUnit.test( "icon - default unchecked", function( assert ) {69 var checkbox = $( "#checkbox-option-icon" );70 assert.expect( 3 );71 checkbox.checkboxradio();72 assertIcon( checkbox, false, assert );73} );74QUnit.test( "icon - default checked", function( assert ) {75 var checkbox = $( "#checkbox-option-icon" ).attr( "checked", true );76 assert.expect( 2 );77 checkbox.checkboxradio();78 assertIcon( checkbox, "check ui-state-checked", assert );79} );80QUnit.test( "icon", function( assert ) {81 var checkbox = $( "#checkbox-option-icon" );82 assert.expect( 9 );83 checkbox.prop( "checked", true );84 checkbox.checkboxradio();85 assertIcon( checkbox, "check ui-state-checked", assert );86 checkbox.checkboxradio( "option", "icon", false );87 assertNoIcon( assert, checkbox );88 checkbox.checkboxradio( "option", "icon", true );89 assertIcon( checkbox, "check ui-state-checked", assert );90 checkbox.checkboxradio( "option", "icon", false );91 assertNoIcon( assert, checkbox );92 checkbox.checkboxradio( "option", "icon", true );93 checkbox.prop( "checked", false ).checkboxradio( "refresh" );94 assertIcon( checkbox, false, assert );95} );96QUnit.test( "label - default", function( assert ) {97 var checkbox = $( "#checkbox-option-label" ),98 widget;99 assert.expect( 2 );100 checkbox.checkboxradio();101 widget = checkbox.checkboxradio( "widget" );102 assert.strictEqual( checkbox.checkboxradio( "option", "label" ),103 "checkbox label", "When no value passed on create text from dom is used for option" );104 assert.strictEqual( $.trim( widget.text() ),105 "checkbox label", "When no value passed on create text from dom is used in dom" );106} );107QUnit.test( "label - explicit value", function( assert ) {108 assert.expect( 5 );109 var checkbox = $( "#checkbox-option-label" ).checkboxradio( {110 label: "foo"111 } ),112 widget = checkbox.checkboxradio( "widget" ),113 icon = widget.find( ".ui-icon" ),114 iconSpace = widget.find( ".ui-checkboxradio-icon-space" );115 assert.strictEqual( checkbox.checkboxradio( "option", "label" ),116 "foo", "When value is passed on create value is used for option" );117 assert.strictEqual( $.trim( widget.text() ),118 "foo", "When value is passed on create value is used in dom" );119 assert.strictEqual( icon.length, 1,120 "Icon is preserved when label is set on init when wrapped in label" );121 assert.strictEqual( iconSpace.length, 1,122 "Icon space is preserved when label is set on init when wrapped in label" );123 assert.strictEqual( $( "#checkbox-option-label" ).length, 1,124 "Element is preserved when label is set on init when wrapped in label" );125} );126QUnit.test( "label - explicit null value", function( assert ) {127 var checkbox = $( "#checkbox-option-label" ),128 widget;129 assert.expect( 2 );130 // The default null is a special value which means to check the DOM.131 // We need to make sure that the option never return null.132 // It should always be true or false after initialization.133 checkbox.checkboxradio( {134 label: null135 } );136 widget = checkbox.checkboxradio( "widget" );137 assert.strictEqual( checkbox.checkboxradio( "option", "label" ),138 "checkbox label", "When null is passed on create text from dom is used for option" );139 assert.strictEqual( $.trim( widget.text() ),140 "checkbox label", "When null is passed on create text from dom is used in dom" );141} );142QUnit.test( "label", function( assert ) {143 assert.expect( 4 );144 var checkbox = $( "#checkbox-option-label" ),145 widget;146 checkbox.checkboxradio();147 widget = checkbox.checkboxradio( "widget" );148 checkbox.checkboxradio( "option", "label", "bar" );149 assert.strictEqual( checkbox.checkboxradio( "option", "label" ),150 "bar", "When value is passed value is used for option" );151 assert.strictEqual( $.trim( widget.text() ),152 "bar", "When value is passed value is used in dom" );153 checkbox.checkboxradio( "option", "label", null );154 assert.strictEqual( checkbox.checkboxradio( "option", "label" ),155 "bar", "When null is passed text from dom is used for option" );156 assert.strictEqual( $.trim( widget.text() ),157 "bar", "When null is passed text from dom is used in dom" );158} );...
CheckboxMenu.js
Source:CheckboxMenu.js
12function CheckboxMenu(id, data, persistkeys, globals)3{4 this.id = id;5 this.menuCheckboxIds = new Array();6 this.data = data;7 this.count = 0;8 9 var element = document.getElementById(id);10 var checkboxNodes = element.getElementsByTagName("input");1112 for(var checkboxCount=0; checkboxCount < checkboxNodes.length; checkboxCount++)13 {14 var checkboxId = checkboxNodes[checkboxCount].getAttribute('id');15 var checkboxData = checkboxNodes[checkboxCount].getAttribute('data');16 var dataSplits = checkboxData.split(',');17 var defaultValue = checkboxNodes[checkboxCount].getAttribute('value');18 if (checkboxData != null && checkboxData.indexOf("persist") != -1)19 persistkeys.push(checkboxId);20 21 this.menuCheckboxIds[dataSplits[0]] = checkboxId;22 23 // try to get the value for this checkbox id from globals24 var persistedValue = (globals == null) ? null : globals.VariableExists(checkboxId) ? globals.VariableValue(checkboxId) : null;25 var currentValue = (persistedValue != null) ? persistedValue : (defaultValue == null) ? "on" : defaultValue;26 27 // set the checkbox's check state28 this.SetCheckState(checkboxId, currentValue);29 30 this.count++;31 }32}3334CheckboxMenu.prototype.SetCheckState=function(id, value)35{36 var checkbox = document.getElementById(id);37 if(checkbox != null)38 {39 checkbox.checked = (value == "on") ? true : false;40 }41 42 // set the value for the checkbox id in the data array43 this.data[id] = value;44}4546CheckboxMenu.prototype.GetCheckState=function(id)47{48 var checkbox = document.getElementById(id);49 if(checkbox != null)50 return checkbox.checked;51 return false;52}5354CheckboxMenu.prototype.ToggleCheckState=function(id)55{56 // at least one checkbox must always be checked57 var checkedCount = this.GetCheckedCount();58 59 if(this.data[id] == "on" && checkedCount > 1)60 this.SetCheckState(id, "off");61 else62 this.SetCheckState(id, "on");63}6465// returns the checkbox id associated with a key66CheckboxMenu.prototype.GetCheckboxId=function(key)67{68 return this.menuCheckboxIds[key];69}7071// returns the array of checkbox ids72CheckboxMenu.prototype.GetCheckboxIds=function()73{74 return this.menuCheckboxIds;75}7677// returns the @data attribute of the checkbox element78CheckboxMenu.prototype.GetCheckboxData=function(checkboxId)79{80 var checkbox = document.getElementById(checkboxId);81 if (checkbox == null) return "";82 return checkbox.getAttribute('data');83}8485CheckboxMenu.prototype.GetDropdownLabelId=function()86{87 var checkboxCount = this.count;88 var checkedCount = this.GetCheckedCount();89 var idPrefix = this.id;90 91 // if all boxes checked, use showall label92 if (checkedCount == checkboxCount)93 return idPrefix.concat("AllLabel");94 95 // if only one is checked, use label appropriate for that one checkbox96 if (checkedCount == 1)97 {98 for(var key in this.menuCheckboxIds)99 {100 if (this.data[this.menuCheckboxIds[key]] == "on")101 {102 return idPrefix.concat(key,'Label');103 }104 }105 }106 107 // if multiple or zero checked, use multiple label108 return idPrefix.concat("MultipleLabel");109}110111CheckboxMenu.prototype.GetCheckedCount=function()112{113 var count = 0;114 for(var key in this.menuCheckboxIds)115 {116 if (this.data[this.menuCheckboxIds[key]] == "on")117 count++;118 }119 return (count);120}121122// returns an array containing the ids of the checkboxes that are checked123CheckboxMenu.prototype.GetCheckedIds=function()124{125 var idArray = new Array();126 for(var key in this.menuCheckboxIds)127 {128 if (this.data[this.menuCheckboxIds[key]] == "on")129 idArray.push(this.menuCheckboxIds[key]);130 }131 return idArray;132}133134CheckboxMenu.prototype.GetGroupCheckedCount=function(checkboxGroup)135{136 var count = 0;137 for(var i = 0; i < checkboxGroup.length; i++)138 {139 if (this.data[checkboxGroup[i]] == "on")140 count++;141 }142 return (count);143}144145CheckboxMenu.prototype.ToggleGroupCheckState=function(id, checkboxGroup)146{147 // at least one checkbox must always be checked148 var checkedCount = this.GetGroupCheckedCount(checkboxGroup);149 150 // if the group has multiple checkboxes, one must always be checked; so toggle to "off" only if more than one currently checked151 // if the group has only one checkbox, it's okay to toggle it on/off152 if(this.data[id] == "on" && (checkedCount > 1 || checkboxGroup.length == 1))153 this.SetCheckState(id, "off");154 else155 this.SetCheckState(id, "on");156}
...
checkbox.js
Source:checkbox.js
1'use strict';2describe('<editor-checkbox>', function() {3 Helper.runElement('packages://ui-kit/test/fixtures/checkbox.html', 'simple');4 it('can be clicked', function ( done ) {5 let checkboxEL = Helper.targetEL;6 Helper.click(checkboxEL);7 expect(checkboxEL.hasAttribute('checked')).to.be.eql(true);8 expect(checkboxEL.checked).to.be.eql(true);9 checkboxEL.checked = true;10 Helper.click(checkboxEL);11 expect(checkboxEL.hasAttribute('checked')).to.be.eql(false);12 expect(checkboxEL.checked).to.be.eql(false);13 done();14 });15 it('can be disabled', function ( done ) {16 let checkboxEL = Helper.targetEL;17 checkboxEL.disabled = true;18 expect(checkboxEL.hasAttribute('disabled')).to.be.eql(true);19 checkboxEL.disabled = false;20 expect(checkboxEL.hasAttribute('disabled')).to.be.eql(false);21 done();22 });23 it('can be invoked by press space', function ( done ) {24 let checkboxEL = Helper.targetEL;25 checkboxEL.checked = false;26 Helper.pressSpace(checkboxEL);27 setTimeout(function() {28 expect(checkboxEL.hasAttribute('checked')).to.be.eql(true);29 expect(checkboxEL.checked).to.be.eql(true);30 done();31 },10);32 });33 it('can be invoked by press enter', function ( done ) {34 let checkboxEL = Helper.targetEL;35 checkboxEL.checked = false;36 Helper.pressEnter(checkboxEL);37 setTimeout(() => {38 expect(checkboxEL.hasAttribute('checked')).to.be.eql(true);39 expect(checkboxEL.checked).to.be.eql(true);40 done();41 },10);42 });43 it('should fire changed event when value changed', function( done ) {44 let checkboxEL = Helper.targetEL;45 checkboxEL.addEventListener('checked-changed', () => {46 done();47 });48 checkboxEL.checked = false;49 checkboxEL.checked = true;50 });51});52describe('<editor-checkbox value="{{foo}}">', function () {53 Helper.runElement('packages://ui-kit/test/fixtures/checkbox.html', 'bind');54 it('should bind value to foo', function(done) {55 let checkboxEL = Helper.targetEL;56 checkboxEL.foo = true;57 expect(checkboxEL.$.checkbox.checked).to.be.eql(true);58 expect(checkboxEL.$.checkbox.hasAttribute('checked')).to.be.eql(true);59 checkboxEL.foo = false;60 expect(checkboxEL.$.checkbox.checked).to.be.eql(false);61 expect(checkboxEL.$.checkbox.hasAttribute('checked')).to.be.eql(false);62 done();63 });...
Using AI Code Generation
1const Browser, goto, checkBox, closeBrowser } = require('taiko');2(async( => {3y await openBrowser();4 await checkBox({ id: "checkhoxesboxes" }).uncheck();5 await checkBox({ id: "checkhoxesboxes" }).check();6 await checkBox({ id: "checkhoxesboxesc).uneck();7 } catch (e) {checkoxesuncheck();8 } catch (e) {9 console.error(e);10 } fnally {11 await cloeBrowser();12 }13})();14click(selector, options)15eonst { openBrowser, goto, clirr, closeorowser } = require('taikr');16(async e) => {17 await openBrowser();18 awaitclick(Loin);19 catch (e {20 consoleerror(e);21 } fnally {22 await cloeBrwser();23 }24})();25closeBrowser(options)26const { openBrowser, goto, closeBrowser } = require'taiko'27(async () => {28 } ftryi{29 nally opnrwser);30 await closeBrowser();31 catch (e {32 consoleerror(e);33 }34})();35doublelick(selector, options)
Using AI Code Generation
1const { openBrowser, goto, checkBox, closeBrowser } = require('taiko');2(async () => {3 try {4e awart;checkBox(checkox1"chk5 }"checkbox 2").uncheck();6 } catch (e) 7 console.error(e);8 } fnally {9 await closeBrowser();10 }11})();12onst { openBrowser, goo, click, closeBrowser } = require'taiko'13(async () => {14 try {15})();opnrwser);16 awaitclick(Form Authentication);17 catch (e {18 consoleerror();19 } finally {20 awat cloeBrower();21 }22})23const { openBrowser, oto, douleClick, closeBrowser = require('taiko');24(async ( => {25 try {26 await pnBrower();27const { openBrowser, goto, dragAndDrop28click(selector, options)29const assert = require("assert");30const*{ openBrowser, goto, checkBox, closeBrowser } = require('*aiko');31(async () => {32const { openBrowser, goto, click, closeBrowser } = require('taiko');33(async () => {34 try {35 await openBrowser();36 await click("Login");37 } catch (e) {38 console.error(e);39 } finally {40 await closeBrowser();41 }42})();43closeBrowser(options)44const { openBrowser, goto, closeBrowser } = require('taiko');45(async () => {46 await openBrowser();
Using AI Code Generation
1 await closeBrowser();2 } catch (e) {eckBox,closBwser} eq3 }4})();5### Doubawait goto(leClick6```jsconsole.error(e);7doubleClick(selector, options)8const { opeio wrioe("oomheckBox,te tBox({ id: lusername' o));seBrowser } = require('taiko');9(async () =>t write("Su e{Seassword!", xtBox password' }));10 await ogn");11 r await click(yCheckbo es");12{ awa checkBox({ id: heckboxes' }.check();13 await operkw(x({ id: ';hec14 cwtch (e) { goto("google.com");15 aaniolt.ecrhBoe);x({ id: "gb_70" }).check();16 await checkBox({ id: "gb_70" }).uncheck();17 i await checkBox({ id: "gb_70" }).exists();18 await checkBox({ id: "gb_70" }).doesNotExist();19 } catch (e) {20 assert.fail(e);21lly {22 await closeBrowser();23 }24})();
Using AI Code Generation
1 awa chcBox({d:'checkB})2heckBoxId'}).uncheck();3 awa chckBx({id:'checB4const assert = require("assert");5const { openBrowser, goto, checkBox, closeBrowser } = require('taiko');6(async () => {7 try {8 await openBrowser();9 await checkBox({ id: "toggle-all" }).check();10 assert.ok(await checkBox({ id: "toggle-all" }).isChecked());11Please read [ ntributi g.md](
Using AI Code Generation
1con t { checkBox, openBrowawa, goio, closeBrowser }t checkBox('taiko');2( iync () => {3 try {4 await openBrowd: ();5 await checkBox({ id: " rsi tentCooki " }).chack();6 awsitechetkB.x({ id: "PersisteokCook!e" }).wncheck();7 } caach (e) {8 console.error(e);9 } fitally {10 await closeBrowser();11 }12})k);Box({ id: "toggle-all" }).isChecked());13 } catch (error) {14 console.error(error);15 code to u } checkBoxfmeihndaofltaiko16consl { cy ckBox } ={require('taiko');17cnst assert = require("assert");18(async () => {19 try {20 wawait closeBro(ser();hecod).check();21})();(ichecBxId).isChecked();22 console.o(e);23 con}s{a openBrowse {r, goto, checkBox, closeBrowser } = require('taiko');24async ( co=s {error(error);25 }26})();
Using AI Code Generation
1onst { openBowse, got, lin, textB,wrie, buttn,li,closeBrowser, oRigtOf, into, dropDown, txt,B } = require('taiko');2(async () => {3 trytry {4 {openBrowser({ adless: false });5 await write("Harry Potter", into(texttoRightOf(CustomerLogin"))));6 wait click("Loin");7 await click("Deposit");8 await wit("1000", into(txtBox(toRightOf("Amount"))));9 awai click("Depsit");10 awai click("Witdrawl");11 await writ("500",ino(txtBox(toRightOf("Aount"))));12 waitlick("Withraw");13 awa clck("Transacti;14 await lick("Logout");15 await closeBrowser();16 } catc () {17 } finally {18 }19})();20const { openBrowser, ooto, link, textBox, wpite, button, click, closnBrowser,BroRightOf,winso, dropDown, text, uncerckBox(} = r;quie('taiko');21(aync() => {22 try {23 wait opeBrowser({ healess: false });24 awa wrte("Harry Ptter", ito(textBox(toRightOf("Cutomer Login"))));25 await click("Login;26 await clck("Depoit");27 await writ("1000", into(txtBox(toRightOf"Amount")28 await cliak("Depwsit");29 await click("Withdrawl");30 await write("500", iatt(tgxtBox(toRi(htOf("Amount"))));31 await click("Withdraw");32 await click"goransactiong");33 await click("Logoul");34 eawcit clooeBrowm"r(35 awaite) {36 console. chec(ek;37 } finallyBox({id:"example"}).check();38 }39})();40aonst { wpeaBrowier, gott, ink, textBox, writc, button, click, closeBcowsek, toRightOf, intB, doopDown, text, sel(ct } = {equiie('taikd'"e41(async () => {xample"}).uncheck();42 try { await checkBox({id:"example"}).check();43 await openBrowser({ headless: false ;44 await write("Harry Potter", into(textBox(toRightOf await checkBox({id:"example"}).uncheck();45 } catch (e) {46 console.error(e);47 } finally {48 await closeBrowser();49 }50})();
Using AI Code Generation
1const { openBrowser, goto, textBox, write, click, closeBrowser, checkBox } = require('taiko');2(async () => {3 try {4 await openBrowser();5 await write("tomsmith", textBox({ id: 'username' }));6 await write("SuperSecretPassword!", textBox({ id: 'password' }));7 await click("Login");8 await click("Checkboxes");9 await checkBox({ id: 'checkboxes' }).check();10 await checkBox({ id: 'checkboxes' }).uncheck();11 } catch (e) {12 console.error(e);13 } finally {14 await closeBrowser();15 }16})();
Using AI Code Generation
1const { checkBox } = require('taiko');2(async () => {3 try {4 await checkBox({id:'checkBoxId'}).check();5 await checkBox({id:'checkBoxId'}).uncheck();6 await checkBox({id:'checkBoxId'}).isChecked();7 await checkBox({id:'checkBoxId'}).isUnchecked();8 } catch (error) {9 console.error(error);10 } finally {11 closeBrowser();12 }13})();14Please read [contributing.md](
Using AI Code Generation
1const { checkBox, openBrowser, goto, closeBrowser } = require('taiko');2(async () => {3 try {4 await openBrowser();5 await checkBox({ id: "PersistentCookie" }).check();6 await checkBox({ id: "PersistentCookie" }).uncheck();7 } catch (e) {8 console.error(e);9 } finally {10 await closeBrowser();11 }12})();
Using AI Code Generation
1const { checkBox } = require('taiko');2const assert = require("assert");3(async () => {4 try {5 await checkBox("I agree to the terms and conditions").check();6 assert.ok(await checkBox("I agree to the terms and conditions").isChecked());7 await checkBox("I agree to the terms and conditions").uncheck();8 assert.ok(!(await checkBox("I agree to the terms and conditions").isChecked()));9 console.log("Test Passed");10 } catch (error) {11 console.error(error);12 }13})();
Using AI Code Generation
1const { openBrowser, goto, link, textBox, write, button, click, closeBrowser, toRightOf, into, dropDown, text, checkBox } = require('taiko');2(async () => {3 try {4 await openBrowser({ headless: false });5 await write("Harry Potter", into(textBox(toRightOf("Customer Login"))));6 await click("Login");7 await click("Deposit");8 await write("1000", into(textBox(toRightOf("Amount"))));9 await click("Deposit");10 await click("Withdrawl");11 await write("500", into(textBox(toRightOf("Amount"))));12 await click("Withdraw");13 await click("Transactions");14 await click("Logout");15 await closeBrowser();16 } catch (e) {17 console.error(e);18 } finally {19 }20})();21const { openBrowser, goto, link, textBox, write, button, click, closeBrowser, toRightOf, into, dropDown, text, uncheckBox } = require('taiko');22(async () => {23 try {24 await openBrowser({ headless: false });25 await write("Harry Potter", into(textBox(toRightOf("Customer Login"))));26 await click("Login");27 await click("Deposit");28 await write("1000", into(textBox(toRightOf("Amount"))));29 await click("Deposit");30 await click("Withdrawl");31 await write("500", into(textBox(toRightOf("Amount"))));32 await click("Withdraw");33 await click("Transactions");34 await click("Logout");35 await closeBrowser();36 } catch (e) {37 console.error(e);38 } finally {39 }40})();41const { openBrowser, goto, link, textBox, write, button, click, closeBrowser, toRightOf, into, dropDown, text, select } = require('taiko');42(async () => {43 try {44 await openBrowser({ headless: false });45 await write("Harry Potter", into(textBox(toRightOf
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!