Index: client/tests/client/view/view_tests.dart |
=================================================================== |
--- client/tests/client/view/view_tests.dart (revision 4144) |
+++ client/tests/client/view/view_tests.dart (working copy) |
@@ -1,203 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-#library('view_tests'); |
- |
-#import('dart:html'); |
-#import('../../../base/base.dart'); |
-#import('../../../testing/unittest/unittest.dart'); |
-#import('../../../view/view.dart'); |
- |
-void main() { |
- test('does not render immediately', () { |
- final view = new TestView(); |
- expect(view.isRendered).isFalse(); |
- |
- view.addToDocument(document.body); |
- expect(view.isRendered).isTrue(); |
- }); |
- |
- group('addToDocument()', () { |
- test('causes view to render', () { |
- final view = new TestView(); |
- view.addToDocument(document.body); |
- expect(view.isRendered).isTrue(); |
- }); |
- |
- test('calls afterRender()', () { |
- var result = ''; |
- final view = new TestView(); |
- view.renderFn = () { |
- result += 'render'; |
- return new Element.html('<div class="test"></div>'); |
- }; |
- |
- view.afterRenderFn = (node) { result += 'after'; }; |
- |
- |
- view.addToDocument(document.body); |
- expect(result).equals('renderafter'); |
- }); |
- |
- test('calls enterDocument()', () { |
- final view = new TestView(); |
- bool entered = false; |
- view.enterDocumentFn = () { entered = true; }; |
- |
- view.addToDocument(document.body); |
- expect(entered).isTrue(); |
- }); |
- }); |
- |
- group('afterRender()', () { |
- test('passes rendered node', () { |
- final rendered = new Element.html('<div class="node"></div>'); |
- final view = new TestView(); |
- view.renderFn = () => rendered; |
- view.afterRenderFn = (node) { expect(node).equals(rendered); }; |
- |
- view.addToDocument(document.body); |
- }); |
- }); |
- |
- group('childViewAdded()', () { |
- test('calls enterDocument() if parent is in document', () { |
- final parent = new TestView(); |
- parent.addToDocument(document.body); |
- |
- bool entered = false; |
- final child = new TestView(); |
- child.enterDocumentFn = () { entered = true; }; |
- |
- // Add the child. |
- parent.childViews = [child]; |
- parent.childViewAdded(child); |
- |
- expect(entered).isTrue(); |
- }); |
- |
- test('does not call enterDocument() if parent is not in document', () { |
- final parent = new TestView(); |
- |
- bool entered = false; |
- final child = new TestView(); |
- child.enterDocumentFn = () { entered = true; }; |
- |
- // Add the child. |
- parent.childViews = [child]; |
- parent.childViewAdded(child); |
- |
- expect(entered).isFalse(); |
- }); |
- |
- test('calls enterDocument() each time added', () { |
- final parent = new TestView(); |
- parent.addToDocument(document.body); |
- |
- var entered = 0; |
- final child = new TestView(); |
- child.enterDocumentFn = () { entered++; }; |
- |
- // Add the child. |
- parent.childViews = [child]; |
- parent.childViewAdded(child); |
- parent.childViewRemoved(child); |
- parent.childViewAdded(child); |
- parent.childViewRemoved(child); |
- parent.childViewAdded(child); |
- parent.childViewRemoved(child); |
- |
- expect(entered).equals(3); |
- }); |
- }); |
- |
- group('childViewRemoved()', () { |
- test('calls exitDocument() if parent is in document', () { |
- final parent = new TestView(); |
- parent.addToDocument(document.body); |
- |
- bool exited = false; |
- final child = new TestView(); |
- child.exitDocumentFn = () { exited = true; }; |
- |
- // Remove the child. |
- parent.childViews = []; |
- parent.childViewRemoved(child); |
- |
- expect(exited).isTrue(); |
- }); |
- |
- test('does not call exitDocument() if parent is not in document', () { |
- final parent = new TestView(); |
- |
- bool exited = false; |
- final child = new TestView(); |
- child.exitDocumentFn = () { exited = true; }; |
- |
- // Remove the child. |
- parent.childViews = []; |
- parent.childViewRemoved(child); |
- |
- expect(exited).isFalse(); |
- }); |
- |
- test('calls exitDocument() each time removed', () { |
- final parent = new TestView(); |
- parent.addToDocument(document.body); |
- |
- var exited = 0; |
- final child = new TestView(); |
- child.exitDocumentFn = () { exited++; }; |
- |
- // Add the child. |
- parent.childViews = [child]; |
- parent.childViewAdded(child); |
- parent.childViewRemoved(child); |
- parent.childViewAdded(child); |
- parent.childViewRemoved(child); |
- parent.childViewAdded(child); |
- parent.childViewRemoved(child); |
- |
- expect(exited).equals(3); |
- }); |
- }); |
- |
- group('enterDocument()', () { |
- test('children are called before parents', () { |
- var result = ''; |
- |
- final parent = new TestView(); |
- parent.enterDocumentFn = () { result += 'parent'; }; |
- |
- final child = new TestView(); |
- child.enterDocumentFn = () { result += 'child'; }; |
- |
- parent.childViews = [child]; |
- |
- parent.addToDocument(document.body); |
- expect(result).equals('childparent'); |
- }); |
- }); |
-} |
- |
-class TestView extends View { |
- Function renderFn; |
- Function afterRenderFn; |
- Function enterDocumentFn; |
- Function exitDocumentFn; |
- List<View> childViews; |
- |
- TestView() : super(), childViews = [] { |
- // Default behavior. |
- renderFn = () => new Element.html('<div class="test"></div>'); |
- afterRenderFn = (node) {}; |
- enterDocumentFn = () {}; |
- exitDocumentFn = () {}; |
- } |
- |
- Element render() => renderFn(); |
- void afterRender(Element node) { afterRenderFn(node); } |
- void enterDocument() { enterDocumentFn(); } |
- void exitDocument() { exitDocumentFn(); } |
-} |