Javascript  |  113行  |  3.22 KB

// 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('tracing.trace_model.object_instance');
base.require('tracing.analysis.generic_object_view');

base.unittest.testSuite('tracing.analysis.generic_object_view', function() {
  var GenericObjectView = tracing.analysis.GenericObjectView;

  test('undefinedValue', function() {
    var view = new GenericObjectView();
    view.object = undefined;
    assertEquals('undefined', view.children[0].dataElement.textContent);
  });

  test('nullValue', function() {
    var view = new GenericObjectView();
    view.object = null;
    assertEquals('null', view.children[0].dataElement.textContent);
  });

  test('stringValue', function() {
    var view = new GenericObjectView();
    view.object = 'string value';
    assertEquals('"string value"', view.children[0].textContent);
  });

  test('booleanValue', function() {
    var view = new GenericObjectView();
    view.object = false;
    assertEquals('false', view.children[0].dataElement.textContent);
  });

  test('numberValue', function() {
    var view = new GenericObjectView();
    view.object = 3.14159;
    assertEquals('3.14159', view.children[0].textContent);
  });

  test('objectSnapshotValue', function() {
    var view = new GenericObjectView();

    var i10 = new tracing.trace_model.ObjectInstance(
        {}, '0x1000', 'cat', 'name', 10);
    var s10 = i10.addSnapshot(10, {foo: 1});

    view.object = s10;
    assertTrue(view.children[0].dataElement instanceof
               tracing.analysis.ObjectSnapshotLink);
  });

  test('objectInstanceValue', function() {
    var view = new GenericObjectView();

    var i10 = new tracing.trace_model.ObjectInstance(
        {}, '0x1000', 'cat', 'name', 10);
    var s10 = i10.addSnapshot(10, {foo: 1});

    view.object = i10;
    assertTrue(view.children[0].dataElement instanceof
               tracing.analysis.ObjectInstanceLink);
  });

  test('instantiate_emptyArrayValue', function() {
    var view = new GenericObjectView();
    view.object = [];
    this.addHTMLOutput(view);
  });

  test('instantiate_twoValueArrayValue', function() {
    var view = new GenericObjectView();
    view.object = [1, 2];
    this.addHTMLOutput(view);
  });

  test('instantiate_twoValueBArrayValue', function() {
    var view = new GenericObjectView();
    view.object = [1, {x: 1}];
    this.addHTMLOutput(view);
  });

  test('instantiate_arrayValue', function() {
    var view = new GenericObjectView();
    view.object = [1, 2, 'three'];
    this.addHTMLOutput(view);
  });

  test('instantiate_arrayWithSimpleObjectValue', function() {
    var view = new GenericObjectView();
    view.object = [{simple: 'object'}];
    this.addHTMLOutput(view);
  });

  test('instantiate_arrayWithComplexObjectValue', function() {
    var view = new GenericObjectView();
    view.object = [{complex: 'object', field: 'two'}];
    this.addHTMLOutput(view);
  });

  test('instantiate_objectValue', function() {
    var view = new GenericObjectView();
    view.object = {
      'entry_one': 'entry_one_value',
      'entry_two': 2,
      'entry_three': [3, 4, 5]
    };
    this.addHTMLOutput(view);
  });
});