aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/ac/autocomplete_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/ac/autocomplete_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/ac/autocomplete_test.html779
1 files changed, 0 insertions, 779 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/ac/autocomplete_test.html b/contexts/data/lib/closure-library/closure/goog/ui/ac/autocomplete_test.html
deleted file mode 100644
index b9ee43e..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/ac/autocomplete_test.html
+++ /dev/null
@@ -1,779 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-Copyright 2006 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.
--->
-<!--
--->
-<head>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Closure Unit Tests - goog.ui.ac.AutoComplete</title>
-<script src="../../base.js"></script>
-<script>
- goog.require('goog.dom');
- goog.require('goog.dom.a11y');
- goog.require('goog.dom.a11y.Role');
- goog.require('goog.dom.a11y.State');
- goog.require('goog.events.EventHandler');
- goog.require('goog.events.EventTarget');
- goog.require('goog.string');
- goog.require('goog.testing.MockControl');
- goog.require('goog.testing.events');
- goog.require('goog.testing.jsunit');
- goog.require('goog.testing.mockmatchers');
- goog.require('goog.ui.ac.AutoComplete');
- goog.require('goog.ui.ac.AutoComplete.EventType');
- goog.require('goog.ui.ac.InputHandler');
- goog.require('goog.ui.ac.Renderer');
- goog.require('goog.ui.ac.RenderOptions');
-</script>
-</head>
-<body>
-<div id="test-area"></div>
-<script>
-/**
- * Mock DataStore
- */
-function MockDS(opt_autoHilite) {
- this.autoHilite_ = opt_autoHilite;
- this.rows_ = [
- '"Slartibartfast Theadore" <fjordmaster@magrathea.com>',
- '"Zaphod Beeblebrox" <theprez@universe.gov>',
- '"Ford Prefect" <ford@theguide.com>',
- '"Arthur Dent" <has.no.tea@gmail.com>',
- '"Marvin The Paranoid Android" <marv@googlemail.com>',
- 'the.mice@magrathea.com',
- 'the.mice@myotherdomain.com'
- ];
-}
-
-MockDS.prototype.requestMatchingRows = function(token, maxMatches,
- matchHandler) {
- var escapedToken = goog.string.regExpEscape(token);
- var matcher = new RegExp('(^|\\W+)' + escapedToken);
- var matches = [];
- for (var i = 0; i < this.rows_.length && matches.length < maxMatches; ++i) {
- var row = this.rows_[i];
- if (row.match(matcher)) {
- matches.push(row);
- }
- }
- if (this.autoHilite_ === undefined) {
- matchHandler(token, matches);
- } else {
- var options = new goog.ui.ac.RenderOptions();
- options.setAutoHilite(this.autoHilite_);
- matchHandler(token, matches, options);
- }
-};
-
-
-/**
- * Mock Selection Handler
- */
-
-function MockSelect() {
-};
-goog.inherits(MockSelect, goog.events.EventTarget);
-
-MockSelect.prototype.selectRow = function(row) {
- this.selectedRow = row;
-};
-
-
-/**
- * Renderer subclass that exposes additional private members for testing.
- */
-function TestRend() {
- goog.ui.ac.Renderer.call(this, goog.dom.getElement('test-area'));
-}
-goog.inherits(TestRend, goog.ui.ac.Renderer);
-
-TestRend.prototype.getRenderedRows = function() {
- return this.rows_;
-};
-
-TestRend.prototype.getHilitedRowIndex = function() {
- return this.hilitedRow_;
-};
-
-TestRend.prototype.getHilitedRowDiv = function() {
- return this.rowDivs_[this.hilitedRow_];
-};
-
-TestRend.prototype.getRowDiv = function(index) {
- return this.rowDivs_[index];
-};
-
-var handler;
-var inputElement;
-var mockControl;
-
-function setUp() {
- inputElement = goog.dom.createDom('input', {type: 'text'});
- handler = new goog.events.EventHandler();
- mockControl = new goog.testing.MockControl();
-}
-
-function tearDown() {
- handler.dispose();
- mockControl.$tearDown();
- goog.dom.removeChildren(goog.dom.getElement('test-area'));
-}
-
-/**
- * Make sure results are truncated (or not) by setMaxMatches.
- */
-function testMaxMatches() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
-
- ac.setMaxMatches(2);
- ac.setToken('the');
- assertEquals(2, rend.getRenderedRows().length);
- ac.setToken('');
-
- ac.setMaxMatches(3);
- ac.setToken('the');
- assertEquals(3, rend.getRenderedRows().length);
- ac.setToken('');
-
- ac.setMaxMatches(1000);
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- ac.setToken('');
-}
-
-function testHiliteViaMouse() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var updates = 0;
- var row = null;
- var rowNode = null;
- handler.listen(rend,
- goog.ui.ac.AutoComplete.EventType.ROW_HILITE,
- function(evt) {
- updates++;
- rowNode = evt.rowNode;
- });
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setMaxMatches(4);
- ac.setToken('the');
- // Need to set the startRenderingRows_ time to something long ago, otherwise
- // the mouse event will not be fired. (The autocomplete logic waits for some
- // time to pass after rendering before firing mouseover events.)
- rend.startRenderingRows_ = -1;
- var hilitedRowDiv = rend.getRowDiv(3);
- goog.testing.events.fireMouseOverEvent(hilitedRowDiv);
- assertEquals(2, updates);
- assertTrue(goog.string.contains(rowNode.innerHTML, 'mice@myotherdomain.com'));
-}
-
-function testSuggestionsUpdateEvent() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- var updates = 0;
- handler.listen(ac,
- goog.ui.ac.AutoComplete.EventType.SUGGESTIONS_UPDATE,
- function() {
- updates++;
- });
-
- ac.setToken('the');
- assertEquals(1, updates);
-
- ac.setToken('beeb');
- assertEquals(2, updates);
-
- ac.setToken('ford');
- assertEquals(3, updates);
-
- ac.dismiss();
- assertEquals(4, updates);
-
- ac.setToken('dent');
- assertEquals(5, updates);
-}
-
-function checkHilitedIndex(renderer, index) {
- assertEquals(index, renderer.getHilitedRowIndex());
-}
-
-function testGetRowCount() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- assertEquals(0, ac.getRowCount());
-
- ac.setToken('Zaphod');
- assertEquals(1, ac.getRowCount());
-
- ac.setMaxMatches(2);
- ac.setToken('the');
- assertEquals(2, ac.getRowCount());
-}
-
-/**
- * Try using next and prev to navigate past the ends with default behavior of
- * allowFreeSelect_ and wrap_.
- */
-function testHiliteNextPrev_default() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
-
- var updates = 0;
- handler.listen(rend,
- goog.ui.ac.AutoComplete.EventType.ROW_HILITE,
- function() {
- updates++;
- });
-
- // make sure 'next' and 'prev' don't explode before any token is set
- ac.hiliteNext();
- ac.hilitePrev();
- ac.setMaxMatches(4);
- assertEquals(0, rend.getRenderedRows().length);
-
- // check a few times
- for (var i = 0; i < 3; ++i) {
- ac.setToken('');
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // check to see if we can select the last of the 4 items
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
- ac.hiliteNext();
- checkHilitedIndex(rend, 2);
- ac.hiliteNext();
- checkHilitedIndex(rend, 3);
- // try going over the edge
- ac.hiliteNext();
- checkHilitedIndex(rend, 3);
-
- // go back down
- ac.hilitePrev();
- checkHilitedIndex(rend, 2);
- ac.hilitePrev();
- checkHilitedIndex(rend, 1);
- ac.hilitePrev();
- checkHilitedIndex(rend, 0);
- ac.hilitePrev();
- checkHilitedIndex(rend, 0);
- }
- // 21 changes in the loop above (3 * 7)
- assertEquals(21, updates);
-}
-
-/**
- * Try using next and prev to navigate past the ends with wrap_ off and
- * allowFreeSelect_ on.
- */
-function testHiliteNextPrev_allowFreeSelect() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setAllowFreeSelect(true);
-
- // make sure 'next' and 'prev' don't explode before any token is set
- ac.hiliteNext();
- ac.hilitePrev();
- ac.setMaxMatches(4);
- assertEquals(0, rend.getRenderedRows().length);
-
- // check a few times
- for (var i = 0; i < 3; ++i) {
- ac.setToken('');
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // check to see if we can select the last of the 4 items
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
- ac.hiliteNext();
- checkHilitedIndex(rend, 2);
- ac.hiliteNext();
- checkHilitedIndex(rend, 3);
- // try going over the edge. Since allowFreeSelect is on, this will
- // deselect the last row.
- ac.hiliteNext();
- checkHilitedIndex(rend, -1);
-
- // go back down the list
- ac.hiliteNext();
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
-
- // go back up the list.
- ac.hilitePrev();
- checkHilitedIndex(rend, 0);
- // go back above the first, deselects first.
- ac.hilitePrev();
- checkHilitedIndex(rend, -1);
- }
-}
-
-/**
- * Try using next and prev to navigate past the ends with wrap_ on
- * allowFreeSelect_ off.
- */
-function testHiliteNextPrev_wrap() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
-
- // make sure 'next' and 'prev' don't explode before any token is set
- ac.hiliteNext();
- ac.hilitePrev();
- ac.setMaxMatches(4);
- assertEquals(0, rend.getRenderedRows().length);
-
- // check a few times
- for (var i = 0; i < 3; ++i) {
- ac.setToken('');
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // check to see if we can select the last of the 4 items
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
- ac.hiliteNext();
- checkHilitedIndex(rend, 2);
- ac.hiliteNext();
- checkHilitedIndex(rend, 3);
- // try going over the edge. Since wrap is on, this will go back to 0.
- ac.hiliteNext();
- checkHilitedIndex(rend, 0);
-
- // go back down the list
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
-
- // go back up the list.
- ac.hilitePrev();
- checkHilitedIndex(rend, 0);
- // go back above the first, selects last.
- ac.hilitePrev();
- checkHilitedIndex(rend, 3);
- }
-}
-
-/**
- * Try using next and prev to navigate past the ends with wrap_ on
- * allowFreeSelect_ on.
- */
-function testHiliteNextPrev_wrapAndAllowFreeSelect() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
- ac.setAllowFreeSelect(true);
-
- // make sure 'next' and 'prev' don't explode before any token is set
- ac.hiliteNext();
- ac.hilitePrev();
- ac.setMaxMatches(4);
- assertEquals(0, rend.getRenderedRows().length);
-
- // check a few times
- for (var i = 0; i < 3; ++i) {
- ac.setToken('');
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // check to see if we can select the last of the 4 items
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
- ac.hiliteNext();
- checkHilitedIndex(rend, 2);
- ac.hiliteNext();
- checkHilitedIndex(rend, 3);
- // try going over the edge. Since free select is on, this should go
- // to -1.
- ac.hiliteNext();
- checkHilitedIndex(rend, -1);
-
- // go back down the list
- ac.hiliteNext();
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
-
- // go back up the list.
- ac.hilitePrev();
- checkHilitedIndex(rend, 0);
- // go back above the first, free select.
- ac.hilitePrev();
- checkHilitedIndex(rend, -1);
- // wrap to last
- ac.hilitePrev();
- checkHilitedIndex(rend, 3);
- }
-}
-
-/**
- * Try using next and prev to navigate past the ends with wrap_ on
- * allowFreeSelect_ on AND turn autoHilite_ off.
- */
-function testHiliteNextPrev_wrapAndAllowFreeSelectNoAutoHilite() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
- ac.setAllowFreeSelect(true);
- ac.setAutoHilite(false);
-
- // make sure 'next' and 'prev' don't explode before any token is set
- ac.hiliteNext();
- ac.hilitePrev();
- ac.setMaxMatches(4);
- assertEquals(0, rend.getRenderedRows().length);
-
- // check a few times
- for (var i = 0; i < 3; ++i) {
- ac.setToken('');
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // check to see if we can select the last of the 4 items.
- // Initially nothing should be selected since autoHilite_ is off.
- checkHilitedIndex(rend, -1);
- ac.hilitePrev();
- checkHilitedIndex(rend, 3);
- ac.hiliteNext();
- checkHilitedIndex(rend, -1);
- ac.hiliteNext();
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
- ac.hiliteNext();
- checkHilitedIndex(rend, 2);
- ac.hiliteNext();
- checkHilitedIndex(rend, 3);
- // try going over the edge. Since free select is on, this should go
- // to -1.
- ac.hiliteNext();
- checkHilitedIndex(rend, -1);
-
- // go back down the list
- ac.hiliteNext();
- checkHilitedIndex(rend, 0);
- ac.hiliteNext();
- checkHilitedIndex(rend, 1);
-
- // go back up the list.
- ac.hilitePrev();
- checkHilitedIndex(rend, 0);
- // go back above the first, free select.
- ac.hilitePrev();
- checkHilitedIndex(rend, -1);
- // wrap to last
- ac.hilitePrev();
- checkHilitedIndex(rend, 3);
- }
-}
-
-/**
- * Checks that autohilite is disabled when there is no token; this allows the
- * user to tab out of an empty autocomplete.
- */
-function testNoAutoHiliteWhenTokenIsEmpty() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
- ac.setAllowFreeSelect(true);
- ac.setAutoHilite(true);
- ac.setMaxMatches(4);
-
- ac.setToken('');
- assertEquals(4, rend.getRenderedRows().length);
- // No token; nothing should be hilited.
- checkHilitedIndex(rend, -1);
-
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // Now there is a token, so the first row should be highlighted.
- checkHilitedIndex(rend, 0);
-}
-
-/**
- * Checks that opt_preserveHilited works.
- */
-function testPreserveHilitedWithoutAutoHilite() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
- ac.setAllowFreeSelect(true);
- ac.setMaxMatches(4);
- ac.setAutoHilite(false);
-
- ac.setToken('m');
- assertEquals(4, rend.getRenderedRows().length);
- // No token; nothing should be hilited.
- checkHilitedIndex(rend, -1);
-
- // Hilite the second element
- var id = rend.getRenderedRows()[1].id;
- ac.hiliteId(id);
-
- checkHilitedIndex(rend, 1);
-
- // Re-render and check if the second element is still hilited
- ac.renderRows(rend.getRenderedRows(), true /* preserve hilite */);
-
- checkHilitedIndex(rend, 1);
-
- // Re-render without preservation
- ac.renderRows(rend.getRenderedRows());
-
- checkHilitedIndex(rend, -1);
-}
-
-/**
- * Checks that the autohilite argument "true" of the matcher is used.
- */
-function testAutoHiliteFromMatcherTrue() {
- var ds = new MockDS(true);
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
- ac.setAllowFreeSelect(true);
- ac.setAutoHilite(false); // Will be overruled.
- ac.setMaxMatches(4);
-
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // The first row should be highlighted.
- checkHilitedIndex(rend, 0);
-}
-
-/**
- * Checks that the autohilite argument "false" of the matcher is used.
- */
-function testAutoHiliteFromMatcherFalse() {
- var ds = new MockDS(false);
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setWrap(true);
- ac.setAllowFreeSelect(true);
- ac.setAutoHilite(true); // Will be overruled.
- ac.setMaxMatches(4);
-
- ac.setToken('the');
- assertEquals(4, rend.getRenderedRows().length);
- // The first row should not be highlighted.
- checkHilitedIndex(rend, -1);
-}
-
-/**
- * Hilite using ids, the way mouse-based hiliting would work.
- */
-function testHiliteId() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
-
- // check a few times
- for (var i = 0; i < 3; ++i) {
- ac.setToken('m');
- assertEquals(4, rend.getRenderedRows().length);
- // try hiliting all 3
- for (var x = 0; x < 4; ++x) {
- var id = rend.getRenderedRows()[x].id;
- ac.hiliteId(id);
- assertEquals(ac.getIdOfIndex_(x), id);
- }
- }
-}
-
-/**
- * Test selecting the hilited row
- */
-function testSelection() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac;
-
- // try with default selection
- ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setToken('m');
- ac.selectHilited();
- assertEquals('"Slartibartfast Theadore" <fjordmaster@magrathea.com>',
- select.selectedRow);
-
- // try second item
- ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setToken('the');
- ac.hiliteNext();
- ac.selectHilited();
- assertEquals('"Ford Prefect" <ford@theguide.com>',
- select.selectedRow);
-}
-
-/**
- * Dismiss when empty and non-empty
- */
-function testDismiss() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
-
- // dismiss empty
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.dismiss();
-
- ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setToken('sir not seen in this picture');
- ac.dismiss();
-
- // dismiss with contents
- ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setToken('t');
- ac.dismiss();
-}
-
-function testTriggerSuggestionsOnUpdate() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
-
- var dismissCalled = 0;
- rend.dismiss = function() {
- dismissCalled++;
- };
-
- var updateCalled = 0;
- select.update = function(opt_force) {
- updateCalled++;
- };
-
- // Normally, menu is dismissed after selecting row (without updating).
- ac.setToken('the');
- ac.selectHilited();
- assertEquals(1, dismissCalled);
- assertEquals(0, updateCalled);
-
- // But not if we re-trigger on update.
- ac.setTriggerSuggestionsOnUpdate(true);
- ac.setToken('the');
- ac.selectHilited();
- assertEquals(1, dismissCalled);
- assertEquals(1, updateCalled);
-}
-
-function testDispose() {
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setToken('the');
- ac.dispose();
-}
-
-/**
- * Ensure that activedescendant is updated properly.
- */
-function testRolesAndStates() {
- function checkActiveDescendant(activeDescendant) {
- assertEquals(
- goog.dom.a11y.getActiveDescendant(inputElement),
- activeDescendant);
- }
- function checkRole(el, role) {
- assertEquals(goog.dom.a11y.getRole(el), role);
- }
- var ds = new MockDS();
- var rend = new TestRend();
- var select = new MockSelect();
- var ac = new goog.ui.ac.AutoComplete(ds, rend, select);
- ac.setTarget(inputElement);
-
- // initially activedescendant is not set
- checkActiveDescendant(null);
-
- // highlight the matching row and check that activedescendant updates
- ac.setToken('');
- ac.setToken('the');
- ac.hiliteNext();
- checkActiveDescendant(rend.getHilitedRowDiv());
-
- // highligted row should have a role of 'option'
- checkRole(rend.getHilitedRowDiv(), goog.dom.a11y.Role.OPTION);
-
- // closing the autocomplete should clear activedescendant
- ac.dismiss();
- checkActiveDescendant(null);
-}
-
-function testAttachInputWithAnchor() {
- var anchorElement = goog.dom.createDom('div', null, inputElement);
-
- var mockRenderer = mockControl.createLooseMock(
- goog.ui.ac.Renderer, true);
- mockRenderer.setAnchorElement(anchorElement);
- var ignore = goog.testing.mockmatchers.ignoreArgument;
- mockRenderer.renderRows(ignore, ignore, inputElement);
-
- var mockInputHandler = mockControl.createLooseMock(
- goog.ui.ac.InputHandler, true);
- mockInputHandler.attachInputs(inputElement);
-
- mockControl.$replayAll();
- var autoComplete = new goog.ui.ac.AutoComplete(
- null, mockRenderer, mockInputHandler);
- autoComplete.attachInputWithAnchor(inputElement, anchorElement);
- autoComplete.setTarget(inputElement);
-
- autoComplete.renderRows(['abc', 'def']);
- mockControl.$verifyAll();
-}
-
-function testDetachInputWithAnchor() {
- var mockRenderer = mockControl.createLooseMock(
- goog.ui.ac.Renderer, true);
- var mockInputHandler = mockControl.createLooseMock(
- goog.ui.ac.InputHandler, true);
- var anchorElement = goog.dom.createDom('div', null, inputElement);
- var inputElement2 = goog.dom.createDom('input', {type: 'text'});
- var anchorElement2 = goog.dom.createDom('div', null, inputElement2);
-
- mockControl.$replayAll();
- var autoComplete = new goog.ui.ac.AutoComplete(
- null, mockRenderer, mockInputHandler);
-
- autoComplete.attachInputWithAnchor(inputElement, anchorElement);
- autoComplete.attachInputWithAnchor(inputElement2, anchorElement2);
- autoComplete.detachInputs(inputElement, inputElement2);
-
- assertFalse(goog.getUid(inputElement) in autoComplete.inputToAnchorMap_);
- assertFalse(goog.getUid(inputElement2) in autoComplete.inputToAnchorMap_);
- mockControl.$verifyAll();
-}
-</script>
-</body>
-</html>