166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved. 266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be 366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file. 466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('ui.container_that_decorates_its_children'); 866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('ui.container_that_decorates_its_children', function() { // @suppress longLineCheck 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis function createChild() { 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var span = document.createElement('span'); 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis span.decorated = false; 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis return span; 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis /** 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis * @constructor 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis */ 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var SimpleContainer = ui.define('simple-container', 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis ui.ContainerThatDecoratesItsChildren); 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis SimpleContainer.prototype = { 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis __proto__: ui.ContainerThatDecoratesItsChildren.prototype, 2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis decorateChild_: function(child) { 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertFalse(child.decorated); 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis child.decorated = true; 2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }, 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis undecorateChild_: function(child) { 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(child.decorated); 3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis child.decorated = false; 3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }; 3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('add', function() { 3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var container = new SimpleContainer(); 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(createChild()); 4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(createChild()); 4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(createChild()); 4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(container.children[0].decorated); 4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(container.children[1].decorated); 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(container.children[2].decorated); 4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('clearUsingTextContent', function() { 4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = createChild(); 4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var container = new SimpleContainer(); 5066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(c0); 5166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.textContent = ''; 5266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertFalse(c0.decorated); 5366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 5566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('clear', function() { 5666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = createChild(); 5766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var container = new SimpleContainer(); 5866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(c0); 5966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.clear(); 6066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertFalse(c0.decorated); 6166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 6266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 6366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('insertNewBefore', function() { 6466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = createChild(); 6566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c1 = createChild(); 6666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var container = new SimpleContainer(); 6766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(c1); 6866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.insertBefore(c0, c1); 6966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(c0.decorated); 7066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(c1.decorated); 7166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 7266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 7366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('insertExistingBefore', function() { 7466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = createChild(); 7566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c1 = createChild(); 7666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var container = new SimpleContainer(); 7766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(c1); 7866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(c0); 7966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.insertBefore(c0, c1); 8066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(c0.decorated); 8166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(c1.decorated); 8266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 8366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 8466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('testReplace', function() { 8566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c0 = createChild(); 8666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var c1 = createChild(); 8766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var container = new SimpleContainer(); 8866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.appendChild(c0); 8966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis container.replaceChild(c1, c0); 9066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertFalse(c0.decorated); 9166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(c1.decorated); 9266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 9366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 9466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis}); 95