// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

'use strict';

base.require('ui.list_view');

base.unittest.testSuite('ui.list_view', function() {
  var ListView = ui.ListView;

  test('instantiate', function() {
    var view = new ListView();
    var i1 = view.addItem('item 1');
    var i2 = view.addItem('item 2');
    var i3 = view.addItem('item 3');
    this.addHTMLOutput(view);
  });

  test('programmaticSelection', function() {
    var view = new ListView();
    var i1 = view.addItem('item 1');
    var i2 = view.addItem('item 2');
    var i3 = view.addItem('item 3');

    i2.selected = true;
    assertTrue(i2.hasAttribute('selected'));
    i3.selected = true;
    assertFalse(i2.hasAttribute('selected'));
    assertTrue(i3.hasAttribute('selected'));
  });

  test('selectionEvents', function() {
    var view = new ListView();
    var didSelectionChange = 0;
    view.addEventListener('selection-changed', function() {
      didSelectionChange = true;
    });
    var i1 = view.addItem('item 1');
    var i2 = view.addItem('item 2');
    var i3 = view.addItem('item 3');

    didSelectionChange = false;
    i2.selected = true;
    assertTrue(didSelectionChange);

    didSelectionChange = false;
    view.removeChild(i2);
    assertTrue(didSelectionChange);
  });
});