diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/textarea_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/ui/textarea_test.html | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/textarea_test.html b/contexts/data/lib/closure-library/closure/goog/ui/textarea_test.html deleted file mode 100644 index aebc733..0000000 --- a/contexts/data/lib/closure-library/closure/goog/ui/textarea_test.html +++ /dev/null @@ -1,316 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2010 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.Textarea</title> - <script src="../base.js"></script> - <script> - goog.require('goog.dom'); - goog.require('goog.dom.classes'); - goog.require('goog.debug.DivConsole'); - goog.require('goog.debug.LogManager'); - goog.require('goog.debug.Logger'); - goog.require('goog.events'); - goog.require('goog.testing.ExpectedFailures'); - goog.require('goog.testing.events'); - goog.require('goog.testing.events.EventObserver'); - goog.require('goog.testing.jsunit'); - goog.require('goog.object'); - goog.require('goog.ui.Control'); - goog.require('goog.ui.ControlRenderer'); - goog.require('goog.ui.Textarea'); - goog.require('goog.ui.TextareaRenderer'); - goog.require('goog.userAgent'); - goog.require('goog.userAgent.product'); - goog.require('goog.userAgent.product.isVersion'); - </script> - <style> - textarea { - height: 25px; /* Need to force an initial height < our minHeight. */ - width: 150px; - padding: 2px; - margin: 0; - border: 1px solid #000; - } - .drop-shadowed { - filter:progid:DXImageTransform.Microsoft.DropShadow(color='#e7e7e7', - offX='5',offY='5'); - box-shadow: 5px 5px 0 #e7e7e7; - -moz-box-shadow: 5px 5px 0 #e7e7e7; - -webkit-box-shadow: 5px 5px 0 #e7e7e7; - } - </style> -</head> -<body> - <h1>goog.ui.Textarea tests</h1> - <p>Here's a textarea defined in markup:</p> - <textarea id="demo-textarea">Foo</textarea> - <div id="sandbox"></div> - <script> - var sandbox = goog.dom.getElement('sandbox'); - var textarea; - var demoTextareaElement = goog.dom.getElement('demo-textarea'); - var expectedFailures = new goog.testing.ExpectedFailures(); - - function setUp() { - textarea = new goog.ui.Textarea(); - } - - function tearDown() { - expectedFailures.handleTearDown(); - textarea.dispose(); - goog.dom.removeChildren(sandbox); - } - - /** - * @return {boolean} Whether we're on Mac Safari 3.x. - */ - function isMacSafari3() { - return goog.userAgent.WEBKIT && goog.userAgent.MAC && - !goog.userAgent.isVersion('527'); - } - - /** - * @return {boolean} Whether we're on Linux Firefox 3.6.3. - */ - function isLinuxFirefox363() { - return goog.userAgent.product.FIREFOX && goog.userAgent.LINUX && - goog.userAgent.product.isVersion('3.6.3') && - !goog.userAgent.product.isVersion('3.6.4'); - } - - /** - * @return {boolean} Whether we're on Firefox 3.0. - */ - function isFirefox3() { - return goog.userAgent.GECKO && - !goog.userAgent.isVersion('1.9.1'); - } - - function testConstructor() { - assertNotNull('Textarea must not be null', textarea); - assertEquals('Renderer must default to expected value', - goog.ui.TextareaRenderer.getInstance(), textarea.getRenderer()); - - var fakeDomHelper = { - 'getDocument': function() { return true; } - }; - var testTextarea = new goog.ui.Textarea('Hello', - goog.ui.TextareaRenderer.getInstance(), fakeDomHelper); - assertEquals('Content must have expected content', 'Hello', - testTextarea.getContent()); - assertEquals('Renderer must have expected value', - goog.ui.TextareaRenderer.getInstance(), testTextarea.getRenderer()); - assertEquals('DOM helper must have expected value', fakeDomHelper, - testTextarea.getDomHelper()); - testTextarea.dispose(); - } - - function testConstructorWithDecorator() { - var decoratedTextarea = new goog.ui.Textarea(); - decoratedTextarea.decorate(demoTextareaElement); - assertEquals('Textarea should have current content after decoration', - 'Foo', decoratedTextarea.getContent()); - var initialHeight = decoratedTextarea.getHeight_(); - var initialOffsetHeight = decoratedTextarea.getElement().offsetHeight; - // focus() will trigger the grow/shrink flow. - decoratedTextarea.getElement().focus(); - assertEquals('Height should not have changed without content change', - initialHeight, decoratedTextarea.getHeight_()); - assertEquals('offsetHeight should not have changed without content ' + - 'change', initialOffsetHeight, - decoratedTextarea.getElement().offsetHeight); - decoratedTextarea.dispose(); - } - - function testGetSetContent() { - textarea.render(sandbox); - assertEquals('Textarea\'s content must default to an empty string', - '', textarea.getContent()); - textarea.setContent(17); - assertEquals('Textarea element must have expected content', '17', - textarea.getElement().value); - textarea.setContent('foo'); - assertEquals('Textarea element must have updated content', 'foo', - textarea.getElement().value); - } - - function testGetSetValue() { - textarea.render(sandbox); - assertEquals('Textarea\'s content must default to an empty string', - '', textarea.getValue()); - textarea.setValue(17); - assertEquals('Textarea element must have expected content', '17', - textarea.getValue()); - textarea.setValue('17'); - assertEquals('Textarea element must have expected content', '17', - textarea.getValue()); - } - - function testBasicTextareaBehavior() { - var observer = new goog.testing.events.EventObserver(); - goog.events.listen(textarea, goog.ui.Textarea.EventType.RESIZE, observer); - textarea.render(sandbox); - var el = textarea.getElement(); - var heightBefore = textarea.getHeight_(); - assertTrue('One resize event should be fired during render', - observer.getEvents().length == 1); - textarea.setContent('Lorem ipsum dolor sit amet, consectetuer ' + - 'elit. Aenean sollicitudin ultrices urna. Proin vehicula mauris ac ' + - 'est. Ut scelerisque, risus ut facilisis dictum, est massa lacinia ' + - 'lorem, in fermentum purus ligula quis nunc.'); - var heightAfter = textarea.getHeight_(); - assertTrue('With this much content, height should have grown.', - heightAfter > heightBefore); - assertTrue('With a height change, a resize event should have fired.', - observer.getEvents().length == 2); - - textarea.setContent(''); - heightAfter = textarea.getHeight_(); - assertTrue('Textarea should shrink with no content.', - heightAfter <= heightBefore); - assertTrue('With a height change, a resize event should have fired.', - observer.getEvents().length == 3); - goog.events.unlisten(textarea, goog.ui.Textarea.EventType.RESIZE, - observer); - } - - function testGetHorizontalScrollBarHeight() { - textarea.render(sandbox); - var textareaEl = textarea.getElement(); - var scrollHeightWithoutScrollBar = textareaEl.scrollHeight; - var withoutScrollBarHeight = - textarea.getHorizontalScrollBarHeight_(); - assertEquals('ScrollbarHeight should be 0 with no scrollbar.', - 0, withoutScrollBarHeight); - - textarea.setContent('Onereallylongstringoftextlongenoughto' + - 'justifyascrollbar'); - textarea.getElement().style.overflow = 'scroll'; - textarea.getElement().style.overflowX = 'scroll'; - var scrollBarHeight = - textarea.getHorizontalScrollBarHeight_(); - var scrollHeight = textareaEl.scrollHeight; - - // Opera & Safari3 include scrollbars in scrollHeight. - expectedFailures.expectFailureFor(goog.userAgent.OPERA || - isMacSafari3() || isFirefox3()); - try { - assertTrue('ScrollbarHeight should be something > 0 (it is ' + - scrollBarHeight + ') and isFirefox3():' + isFirefox3() + ', ' + - goog.userAgent.VERSION, scrollBarHeight > 0); - } catch (e) { - expectedFailures.handleException(e); - } - } - - function testMinHeight() { - textarea.render(sandbox); - textarea.setMinHeight(50); - assertEquals('offsetHeight should be 50 initially', 50, - textarea.getElement().offsetHeight); - textarea.setContent('Lorem ipsum dolor sit amet, consectetuer ' + - 'elit. Aenean sollicitudin ultrices urna. Proin vehicula mauris ac ' + - 'est. Ut scelerisque, risus ut facilisis dictum, est massa lacinia ' + - 'lorem, in fermentum purus ligula quis nunc.'); - assertTrue('getHeight_() should be > 50', - textarea.getHeight_() > 50); - - textarea.setContent(''); - assertEquals('With no content, offsetHeight should go back to 50, ' + - 'the minHeight.', 50, textarea.getElement().offsetHeight); - - expectedFailures.expectFailureFor(isMacSafari3()); - try { - textarea.setMinHeight(0); - assertTrue('After setting minHeight to 0, offsetHeight should ' + - 'now be < 50, but it is ' + textarea.getElement().offsetHeight, - textarea.getElement().offsetHeight < 50); - } catch (e) { - expectedFailures.handleException(e); - } - } - - function testMouseUpListener() { - textarea.render(sandbox); - textarea.setMinHeight(100); - textarea.setMaxHeight(200); - textarea.mouseUpListener_({}); - assertEquals('After a mouseup which is not a resize, minHeight should ' + - 'still be 100', 100, textarea.minHeight_); - - // We need to test how CSS drop shadows effect this too. - goog.dom.classes.add(textarea.getElement(), 'drop-shadowed'); - textarea.mouseUpListener_({}); - assertEquals('After a mouseup which is not a resize, minHeight should ' + - 'still be 100 even with a shadow', 100, textarea.minHeight_); - - } - - function testMaxHeight() { - textarea.render(sandbox); - textarea.setMaxHeight(50); - assertTrue('Initial offsetHeight should be less than 50', - textarea.getElement().offsetHeight < 50); - var newContent = 'Lorem ipsum dolor sit amet, consectetuer adipiscing ' + - 'elit. Aenean sollicitudin ultrices urna. Proin vehicula mauris ac ' + - 'est. Ut scelerisque, risus ut facilisis dictum, est massa lacinia ' + - 'lorem, in fermentum purus ligula quis nunc.' - textarea.setContent(newContent); - - assertTrue('With lots of content, getHeight_() should be > 50', - textarea.getHeight_() > 50); - assertEquals('Even with lots of content, offsetHeight should be 50 ' + - 'with maxHeight set', 50, textarea.getElement().offsetHeight); - textarea.setMaxHeight(0); - assertTrue('After setting maxHeight to 0, offsetHeight should now ' + - 'be > 50', textarea.getElement().offsetHeight > 50); - } - - function testMinAndMaxHeight() { - textarea.render(sandbox); - textarea.setMinHeight(50); - textarea.setMaxHeight(150); - assertEquals('offsetHeight should be 50 initially', 50, - textarea.getElement().offsetHeight); - - textarea.setContent('Lorem ipsum dolor sit amet, consectetuer ' + - 'elit. Aenean sollicitudin ultrices urna. Proin vehicula mauris ac ' + - 'est. Ut scelerisque, risus ut facilisis dictum, est massa lacinia ' + - 'lorem, in fermentum purus ligula quis nunc.'); - - - var height = textarea.getHeight_(); - // For some reason Mac Safari 3 has 136 and Linux FF 3.6.3 has 146 here. - expectedFailures.expectFailureFor(isMacSafari3() || isLinuxFirefox363()); - try { - assertTrue('With lots of content, getHeight_() should be > 150 ' + - '(it is ' + height + ')', height > 150); - assertEquals('Even with lots of content, offsetHeight should be 150 ' + - 'with maxHeight set', 150, - textarea.getElement().offsetHeight); - - textarea.setMaxHeight(0); - assertTrue('After setting maxHeight to 0, offsetHeight should now ' + - 'be > 150 (it is ' + textarea.getElement().offsetHeight + ')', - textarea.getElement().offsetHeight > 150); - - textarea.setContent(''); - textarea.setMinHeight(0); - assertTrue('After setting minHeight to 0, with no contents, ' + - 'offsetHeight should now be < 50', - textarea.getElement().offsetHeight < 50); - } catch (e) { - expectedFailures.handleException(e); - } - } - - </script> -</body> -</html> |