1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5'use strict'; 6 7base.require('ui.container_that_decorates_its_children'); 8 9base.unittest.testSuite('ui.container_that_decorates_its_children', function() { // @suppress longLineCheck 10 11 function createChild() { 12 var span = document.createElement('span'); 13 span.decorated = false; 14 return span; 15 } 16 17 /** 18 * @constructor 19 */ 20 var SimpleContainer = ui.define('simple-container', 21 ui.ContainerThatDecoratesItsChildren); 22 23 SimpleContainer.prototype = { 24 __proto__: ui.ContainerThatDecoratesItsChildren.prototype, 25 26 decorateChild_: function(child) { 27 assertFalse(child.decorated); 28 child.decorated = true; 29 }, 30 31 undecorateChild_: function(child) { 32 assertTrue(child.decorated); 33 child.decorated = false; 34 } 35 }; 36 37 test('add', function() { 38 var container = new SimpleContainer(); 39 container.appendChild(createChild()); 40 container.appendChild(createChild()); 41 container.appendChild(createChild()); 42 assertTrue(container.children[0].decorated); 43 assertTrue(container.children[1].decorated); 44 assertTrue(container.children[2].decorated); 45 }); 46 47 test('clearUsingTextContent', function() { 48 var c0 = createChild(); 49 var container = new SimpleContainer(); 50 container.appendChild(c0); 51 container.textContent = ''; 52 assertFalse(c0.decorated); 53 }); 54 55 test('clear', function() { 56 var c0 = createChild(); 57 var container = new SimpleContainer(); 58 container.appendChild(c0); 59 container.clear(); 60 assertFalse(c0.decorated); 61 }); 62 63 test('insertNewBefore', function() { 64 var c0 = createChild(); 65 var c1 = createChild(); 66 var container = new SimpleContainer(); 67 container.appendChild(c1); 68 container.insertBefore(c0, c1); 69 assertTrue(c0.decorated); 70 assertTrue(c1.decorated); 71 }); 72 73 test('insertExistingBefore', function() { 74 var c0 = createChild(); 75 var c1 = createChild(); 76 var container = new SimpleContainer(); 77 container.appendChild(c1); 78 container.appendChild(c0); 79 container.insertBefore(c0, c1); 80 assertTrue(c0.decorated); 81 assertTrue(c1.decorated); 82 }); 83 84 test('testReplace', function() { 85 var c0 = createChild(); 86 var c1 = createChild(); 87 var container = new SimpleContainer(); 88 container.appendChild(c0); 89 container.replaceChild(c1, c0); 90 assertFalse(c0.decorated); 91 assertTrue(c1.decorated); 92 }); 93 94}); 95