blob: 595400ad7f2d8215f67a975ae1a4c002322a3e36 [file] [log] [blame]
<!DOCTYPE html>
<!--
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.
-->
<link rel="import" href="/tracing/base/utils.html">
<link rel="import" href="/tracing/value/numeric.html">
<link rel="import" href="/tracing/value/unit.html">
<link rel="import" href="/tracing/value/value.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
test('numericValueBasic', function() {
var canonicalUrl = 'my_test.json';
var n = new tr.v.ScalarNumeric(tr.v.Unit.byName.sizeInBytes, 314);
var v = new tr.v.NumericValue(canonicalUrl, 'MyNumeric', n);
var d = v.asDict();
var v2 = tr.v.Value.fromDict(d);
assert.instanceOf(v2, tr.v.NumericValue);
assert.equal(v.name, v2.name);
assert.equal(v.numeric.value, v2.numeric.value);
assert.equal(v.canonicalUrl, v2.canonicalUrl);
});
test('dictValueBasic', function() {
var canonicalUrl = 'my_test.json';
var v = new tr.v.DictValue(canonicalUrl, 'MyDict', {my_key: 'my_value'});
var d = v.asDict();
var v2 = tr.v.Value.fromDict(d);
assert.instanceOf(v2, tr.v.DictValue);
assert.equal(v.groupingKeys.value_name, v2.groupingKeys.value_name);
assert.deepEqual(v.value, v2.value);
});
test('failureValueBasic', function() {
var canonicalUrl = 'my_test.json';
var v = new tr.v.FailureValue(
canonicalUrl, 'MyFailure',
{description: 'Description', stack: tr.b.stackTraceAsString()});
var d = v.asDict();
var v2 = tr.v.Value.fromDict(d);
assert.instanceOf(v2, tr.v.FailureValue);
assert.equal(v.name, v2.name);
assert.equal(v.description, v2.description);
assert.equal(v.stack, v2.stack);
assert.equal(v.diagnostics.canonical_url, v2.diagnostics.canonical_url);
});
test('skipValueBasic', function() {
var canonicalUrl = 'my_test.json';
var v = new tr.v.SkipValue(canonicalUrl, 'MySkip',
{description: 'WhySkipped'});
var d = v.asDict();
var v2 = tr.v.Value.fromDict(d);
assert.instanceOf(v2, tr.v.SkipValue);
assert.equal(v.groupingKeys.value_name, v2.groupingKeys.value_name);
assert.equal(v.description, v2.description);
});
test('addGroupingKey', function() {
var canonicalUrl = 'my_test.json';
var n = new tr.v.ScalarNumeric(tr.v.Unit.byName.sizeInBytes, 314);
var v = new tr.v.NumericValue(canonicalUrl, 'MyScalar', n);
v.addGroupingKey('foo', 'bar');
assert.equal(v.groupingKeys.foo, 'bar');
});
test('addDuplicateGroupingKeyThrows', function() {
var canonicalUrl = 'my_test.json';
var n = new tr.v.ScalarNumeric(tr.v.Unit.byName.sizeInBytes, 314);
var v = new tr.v.NumericValue(canonicalUrl, 'MyScalar', n);
assert.throws(function() { v.addGroupingKey('name', 'bar'); });
});
});
</script>