diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/menuitem_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/ui/menuitem_test.html | 559 |
1 files changed, 0 insertions, 559 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/menuitem_test.html b/contexts/data/lib/closure-library/closure/goog/ui/menuitem_test.html deleted file mode 100644 index fb8103a..0000000 --- a/contexts/data/lib/closure-library/closure/goog/ui/menuitem_test.html +++ /dev/null @@ -1,559 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2008 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<!-- -Author: attila@google.com (Attila Bodis) ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>Closure Unit Tests - goog.ui.MenuItem</title> - <script src="../base.js"></script> - <script> - goog.require('goog.array'); - goog.require('goog.dom'); - goog.require('goog.dom.NodeType'); - goog.require('goog.dom.classes'); - goog.require('goog.events.KeyCodes'); - goog.require('goog.testing.events'); - goog.require('goog.testing.jsunit'); - goog.require('goog.testing.recordFunction'); - goog.require('goog.ui.Component.State'); - goog.require('goog.ui.MenuItem'); - goog.require('goog.ui.MenuItemRenderer'); - </script> -</head> -<body> - <div id="sandbox"></div> - <div id="parentComponent"></div> - <script> - var sandbox = goog.dom.getElement('sandbox'); - var item; - - function setUp() { - item = new goog.ui.MenuItem('Item'); - } - - function tearDown() { - item.dispose(); - goog.dom.removeChildren(sandbox); - } - - function testMenuItem() { - assertNotNull('Instance must not be null', item); - assertEquals('Renderer must default to MenuItemRenderer singleton', - goog.ui.MenuItemRenderer.getInstance(), item.getRenderer()); - assertEquals('Content must have expected value', 'Item', - item.getContent()); - assertEquals('Caption must default to the content', item.getContent(), - item.getCaption()); - assertEquals('Value must default to the caption', item.getCaption(), - item.getValue()); - } - - function testMenuItemConstructor() { - var model = 'Hello'; - var fakeDom = {}; - var fakeRenderer = {}; - - var menuItem = new goog.ui.MenuItem('Item', model, fakeDom, fakeRenderer); - assertEquals('Content must have expected value', 'Item', - menuItem.getContent()); - assertEquals('Caption must default to the content', menuItem.getContent(), - menuItem.getCaption()); - assertEquals('Model must be set', model, menuItem.getModel()); - assertNotEquals('Value must not equal the caption', menuItem.getCaption(), - menuItem.getValue()); - assertEquals('Value must equal the model', model, menuItem.getValue()); - assertEquals('DomHelper must be set', fakeDom, menuItem.getDomHelper()); - assertEquals('Renderer must be set', fakeRenderer, - menuItem.getRenderer()); - } - - function testGetValue() { - assertUndefined('Model must be undefined by default', item.getModel()); - assertEquals('Without a model, value must default to the caption', - item.getCaption(), item.getValue()); - item.setModel('Foo'); - assertEquals('With a model, value must default to the model', - item.getModel(), item.getValue()); - } - - function testSetValue() { - assertUndefined('Model must be undefined by default', item.getModel()); - assertEquals('Without a model, value must default to the caption', - item.getCaption(), item.getValue()); - item.setValue(17); - assertEquals('Value must be set', 17, item.getValue()); - assertEquals('Value and model must be the same', item.getValue(), - item.getModel()); - } - - function testGetSetContent() { - assertEquals('Content must have expected value', 'Item', - item.getContent()); - item.setContent(goog.dom.createDom('div', 'foo', 'Foo')); - assertEquals('Content must be an element', goog.dom.NodeType.ELEMENT, - item.getContent().nodeType); - assertHTMLEquals('Content must be the expected element', - '<div class="foo">Foo</div>', - goog.dom.getOuterHtml(item.getContent())); - } - - function testGetSetCaption() { - assertEquals('Caption must have expected value', 'Item', - item.getCaption()); - item.setCaption('Hello, world!'); - assertTrue('Caption must be a string', goog.isString(item.getCaption())); - assertEquals('Caption must have expected value', 'Hello, world!', - item.getCaption()); - item.setContent(goog.dom.createDom('div', 'foo', 'Foo')); - assertTrue('Caption must be a string', goog.isString(item.getCaption())); - assertEquals('Caption must have expected value', 'Foo', - item.getCaption()); - } - - function testGetSetContentAfterCreateDom() { - item.createDom(); - assertEquals('Content must have expected value', 'Item', - item.getContent()); - item.setContent(goog.dom.createDom('div', 'foo', 'Foo')); - assertEquals('Content must be an element', goog.dom.NodeType.ELEMENT, - item.getContent().nodeType); - assertHTMLEquals('Content must be the expected element', - '<div class="foo">Foo</div>', - goog.dom.getOuterHtml(item.getContent())); - } - - function testGetSetCaptionAfterCreateDom() { - item.createDom(); - assertEquals('Caption must have expected value', 'Item', - item.getCaption()); - item.setCaption('Hello, world!'); - assertTrue('Caption must be a string', goog.isString(item.getCaption())); - assertEquals('Caption must have expected value', 'Hello, world!', - item.getCaption()); - item.setContent(goog.dom.createDom('div', 'foo', 'Foo')); - assertTrue('Caption must be a string', goog.isString(item.getCaption())); - assertEquals('Caption must have expected value', 'Foo', - item.getCaption()); - - var arrayContent = goog.array.clone(goog.dom.htmlToDocumentFragment( - ' <b> \xa0foo</b><i> bar</i> ').childNodes); - item.setContent(arrayContent); - assertEquals('whitespaces must be normalized in the caption', - '\xa0foo bar', item.getCaption()); - } - - function testSetSelectable() { - assertFalse('Item must not be selectable by default', - item.isSupportedState(goog.ui.Component.State.SELECTED)); - item.setSelectable(true); - assertTrue('Item must be selectable', - item.isSupportedState(goog.ui.Component.State.SELECTED)); - item.setSelected(true); - assertTrue('Item must be selected', item.isSelected()); - assertFalse('Item must not be checked', item.isChecked()); - item.setSelectable(false); - assertFalse('Item must not no longer be selectable', - item.isSupportedState(goog.ui.Component.State.SELECTED)); - assertFalse('Item must no longer be selected', item.isSelected()); - assertFalse('Item must not be checked', item.isChecked()); - } - - function testSetCheckable() { - assertFalse('Item must not be checkable by default', - item.isSupportedState(goog.ui.Component.State.CHECKED)); - item.setCheckable(true); - assertTrue('Item must be checkable', - item.isSupportedState(goog.ui.Component.State.CHECKED)); - item.setChecked(true); - assertTrue('Item must be checked', item.isChecked()); - assertFalse('Item must not be selected', item.isSelected()); - item.setCheckable(false); - assertFalse('Item must not no longer be checkable', - item.isSupportedState(goog.ui.Component.State.CHECKED)); - assertFalse('Item must no longer be checked', item.isChecked()); - assertFalse('Item must not be selected', item.isSelected()); - } - - function testSetSelectableBeforeCreateDom() { - item.setSelectable(true); - item.createDom(); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - item.setSelectable(false); - assertFalse('Item must no longer have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - } - - function testSetCheckableBeforeCreateDom() { - item.setCheckable(true); - item.createDom(); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - item.setCheckable(false); - assertFalse('Item must no longer have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - } - - function testSetSelectableAfterCreateDom() { - item.createDom(); - item.setSelectable(true); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - item.setSelectable(false); - assertFalse('Item must no longer have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - } - - function testSetCheckableAfterCreateDom() { - item.createDom(); - item.setCheckable(true); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - item.setCheckable(false); - assertFalse('Item must no longer have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - } - - function testSelectableBehavior() { - item.setSelectable(true); - item.render(sandbox); - assertFalse('Item must not be selected by default', item.isSelected()); - item.performActionInternal(); - assertTrue('Item must be selected', item.isSelected()); - item.performActionInternal(); - assertTrue('Item must still be selected', item.isSelected()); - } - - function testCheckableBehavior() { - item.setCheckable(true); - item.render(sandbox); - assertFalse('Item must not be checked by default', item.isChecked()); - item.performActionInternal(); - assertTrue('Item must be checked', item.isChecked()); - item.performActionInternal(); - assertFalse('Item must no longer be checked', item.isChecked()); - } - - function testGetSetContentForItemWithCheckBox() { - item.setSelectable(true); - item.createDom(); - - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertEquals('getContent() must not return the checkbox structure', - 'Item', item.getContent()); - - item.setContent('Hello'); - assertEquals('getContent() must not return the checkbox structure', - 'Hello', item.getContent()); - assertTrue('Item must still have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - - item.setContent(goog.dom.createDom('span', 'foo', 'Foo')); - assertEquals('getContent() must return element', - goog.dom.NodeType.ELEMENT, item.getContent().nodeType); - assertTrue('Item must still have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - - item.setContent(null); - assertNull('getContent() must return null', item.getContent()); - assertTrue('Item must still have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - } - - function testGetSetCaptionForItemWithCheckBox() { - item.setCheckable(true); - item.createDom(); - - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertEquals('getCaption() must not return the checkbox structure', - 'Item', item.getCaption()); - - item.setCaption('Hello'); - assertEquals('getCaption() must not return the checkbox structure', - 'Hello', item.getCaption()); - assertTrue('Item must still have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - - item.setContent(goog.dom.createDom('span', 'foo', 'Foo')); - assertEquals('getCaption() must return text content', 'Foo', - item.getCaption()); - assertTrue('Item must still have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - - item.setCaption(''); - assertEquals('getCaption() must return empty string', '', - item.getCaption()); - assertTrue('Item must still have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - } - - function testGetSetCaptionForItemWithAccelerators() { - var contentArr = []; - contentArr.push(goog.dom.createDom('span', - goog.getCssName('goog-menuitem-accel'), 'Ctrl+1')); - contentArr.push(goog.dom.createTextNode('Hello')); - item.setCaption(contentArr); - assertEquals('getCaption() must not return the accelerator', 'Hello', - item.getCaption()); - - item.setCaption(''); - assertEquals('getCaption() must return empty string', '', - item.getCaption()); - } - - function testGetSetCaptionForItemWithMnemonics() { - var contentArr = []; - contentArr.push(goog.dom.createDom('span', - goog.getCssName('goog-menuitem-mnemonic-hint'), 'H')); - contentArr.push(goog.dom.createTextNode('ello')); - item.setCaption(contentArr); - assertEquals('getCaption() must not return hint markup', 'Hello', - item.getCaption()); - - contentArr = []; - contentArr.push(goog.dom.createTextNode('Hello')); - contentArr.push(goog.dom.createDom('span', - goog.getCssName('goog-menuitem-mnemonic-separator'), '(', - goog.dom.createDom('span', - goog.getCssName('goog-menuitem-mnemonic-hint'), 'J'), ')')); - item.setCaption(contentArr); - assertEquals('getCaption() must not return the paranethetical mnemonic', - 'Hello', item.getCaption()); - - item.setCaption(''); - assertEquals('getCaption() must return the empty string', '', - item.getCaption()); - } - - function testHandleKeyEventInternalWithMnemonic() { - item.performActionInternal = - goog.testing.recordFunction(item.performActionInternal); - item.setMnemonic(goog.events.KeyCodes.F); - item.handleKeyEventInternal({'keyCode': goog.events.KeyCodes.F}); - assertEquals('performActionInternal must be called', 1, - item.performActionInternal.getCallCount()); - } - - function testHandleKeyEventInternalWithoutMnemonic() { - item.performActionInternal = goog.testing.recordFunction( - item.performActionInternal); - item.handleKeyEventInternal({'keyCode': goog.events.KeyCodes.F}); - assertEquals('performActionInternal must not be called without a' + - ' mnemonic', 0, item.performActionInternal.getCallCount()); - } - - function testRender() { - item.render(sandbox); - var contentElement = item.getContentElement(); - assertNotNull('Content element must exist', contentElement); - assertTrue('Content element must have expected class name', - goog.dom.classes.has(contentElement, - item.getRenderer().getStructuralCssClass() + '-content')); - assertHTMLEquals('Content element must have expected structure', - 'Item', contentElement.innerHTML); - } - - function testRenderSelectableItem() { - item.setSelectable(true); - item.render(sandbox); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertEquals('getCaption() return expected value', 'Item', - item.getCaption()); - } - - function testRenderSelectedItem() { - item.setSelectable(true); - item.setSelected(true); - item.render(sandbox); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertTrue('Item must have selected style', - goog.dom.classes.has(item.getElement(), - item.getRenderer().getClassForState( - goog.ui.Component.State.SELECTED))); - } - - function testRenderCheckableItem() { - item.setCheckable(true); - item.render(sandbox); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertEquals('getCaption() return expected value', 'Item', - item.getCaption()); - } - - function testRenderCheckedItem() { - item.setCheckable(true); - item.setChecked(true); - item.render(sandbox); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertTrue('Item must have checked style', - goog.dom.classes.has(item.getElement(), - item.getRenderer().getClassForState( - goog.ui.Component.State.CHECKED))); - } - - function testDecorate() { - sandbox.innerHTML = '<div id="foo">Foo</div>'; - var foo = goog.dom.getElement('foo'); - item.decorate(foo); - assertEquals('Decorated element must be as expected', foo, - item.getElement()); - assertTrue('Decorated element must have expected class name', - goog.dom.classes.has(item.getElement(), - item.getRenderer().getCssClass())); - assertEquals('Content element must be the decorated element\'s child', - item.getContentElement(), item.getElement().firstChild); - assertHTMLEquals('Content must have expected structure', 'Foo', - item.getContentElement().innerHTML); - } - - function testDecorateCheckableItem() { - sandbox.innerHTML = '<div id="foo" class="goog-option">Foo</div>'; - var foo = goog.dom.getElement('foo'); - item.decorate(foo); - assertEquals('Decorated element must be as expected', foo, - item.getElement()); - assertTrue('Decorated element must have expected class name', - goog.dom.classes.has(item.getElement(), - item.getRenderer().getCssClass())); - assertEquals('Content element must be the decorated element\'s child', - item.getContentElement(), item.getElement().firstChild); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertFalse('Item must not be checked', item.isChecked()); - } - - function testDecorateCheckedItem() { - sandbox.innerHTML = - '<div id="foo" class="goog-option goog-option-selected">Foo</div>'; - var foo = goog.dom.getElement('foo'); - item.decorate(foo); - assertEquals('Decorated element must be as expected', foo, - item.getElement()); - assertSameElements('Decorated element must have expected class names', - ['goog-menuitem', 'goog-option', 'goog-option-selected'], - goog.dom.classes.get(item.getElement())); - assertEquals('Content element must be the decorated element\'s child', - item.getContentElement(), item.getElement().firstChild); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertTrue('Item must be checked', item.isChecked()); - } - - function testDecorateTemplate() { - sandbox.innerHTML = '<div id="foo" class="goog-menuitem">' + - '<div class="goog-menuitem-content">Foo</div></div>'; - var foo = goog.dom.getElement('foo'); - item.decorate(foo); - assertEquals('Decorated element must be as expected', foo, - item.getElement()); - assertTrue('Decorated element must have expected class name', - goog.dom.classes.has(item.getElement(), - item.getRenderer().getCssClass())); - assertEquals('Content element must be the decorated element\'s child', - item.getContentElement(), item.getElement().firstChild); - assertHTMLEquals('Content must have expected structure', 'Foo', - item.getContentElement().innerHTML); - } - - function testDecorateCheckableItemTemplate() { - sandbox.innerHTML = '<div id="foo" class="goog-menuitem goog-option">' + - '<div class="goog-menuitem-content">' + - '<div class="goog-menuitem-checkbox"></div>' + - 'Foo</div></div>'; - var foo = goog.dom.getElement('foo'); - item.decorate(foo); - assertEquals('Decorated element must be as expected', foo, - item.getElement()); - assertTrue('Decorated element must have expected class name', - goog.dom.classes.has(item.getElement(), - item.getRenderer().getCssClass())); - assertEquals('Content element must be the decorated element\'s child', - item.getContentElement(), item.getElement().firstChild); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertEquals('Item must have exactly one checkbox structure', 1, - goog.dom.getElementsByTagNameAndClass('div', 'goog-menuitem-checkbox', - item.getElement()).length); - assertFalse('Item must not be checked', item.isChecked()); - } - - function testDecorateCheckedItemTemplate() { - sandbox.innerHTML = '<div id="foo" ' + - 'class="goog-menuitem goog-option goog-option-selected">' + - '<div class="goog-menuitem-content">' + - '<div class="goog-menuitem-checkbox"></div>' + - 'Foo</div></div>'; - var foo = goog.dom.getElement('foo'); - item.decorate(foo); - assertEquals('Decorated element must be as expected', foo, - item.getElement()); - assertSameElements('Decorated element must have expected class names', - ['goog-menuitem', 'goog-option', 'goog-option-selected'], - goog.dom.classes.get(item.getElement())); - assertEquals('Content element must be the decorated element\'s child', - item.getContentElement(), item.getElement().firstChild); - assertTrue('Item must have checkbox structure', - item.getRenderer().hasCheckBoxStructure(item.getElement())); - assertEquals('Item must have exactly one checkbox structure', 1, - goog.dom.getElementsByTagNameAndClass('div', 'goog-menuitem-checkbox', - item.getElement()).length); - assertTrue('Item must be checked', item.isChecked()); - } - - /** @bug 1463524 */ - function testHandleMouseUp() { - var COORDS_1 = new goog.math.Coordinate(1, 1); - var COORDS_2 = new goog.math.Coordinate(2, 2); - item.setActive(true); - // Override performActionInternal() for testing purposes. - var actionPerformed; - item.performActionInternal = function() { - actionPerformed = true; - return true; - }; - item.render(sandbox); - - // Scenario 1: item has no parent. - actionPerformed = false; - item.setActive(true); - goog.testing.events.fireMouseUpEvent(item.getElement()); - assertTrue('Action should be performed on mouseup', actionPerformed); - - // Scenario 2: item has a parent. - actionPerformed = false; - item.setActive(true); - var parent = new goog.ui.Component(); - var parentElem = goog.dom.getElement('parentComponent'); - parent.render(parentElem); - parent.addChild(item); - parent.openingCoords = COORDS_1; - goog.testing.events.fireMouseUpEvent( - item.getElement(), undefined, COORDS_2); - assertTrue('Action should be performed on mouseup', actionPerformed); - - // Scenario 3: item has a parent which was opened during mousedown, and - // item, and now the mouseup fires at the same coords. - actionPerformed = false; - item.setActive(true); - parent.openingCoords = COORDS_2; - goog.testing.events.fireMouseUpEvent( - item.getElement(), undefined, COORDS_2); - assertFalse('Action should not be performed on mouseup', actionPerformed); - } - - </script> -</body> -</html> |