blob: 8b7210e966fde799e6ec8bd3f5b89fd4719de9ad [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2016 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/core/test_utils.html">
<link rel="import" href="/tracing/value/diagnostics/diagnostic_map.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
test('clone', function() {
var diagnostics = new tr.v.d.DiagnosticMap();
diagnostics.set('generic', new tr.v.d.Generic({a: ['b', 3]}));
diagnostics.set('breakdown', new tr.v.d.Breakdown());
diagnostics.set('events', new tr.v.d.RelatedEventSet());
diagnostics.set('value set', new tr.v.d.RelatedValueSet());
diagnostics.set('value map', new tr.v.d.RelatedValueMap());
diagnostics.set('histogram breakdown',
new tr.v.d.RelatedHistogramBreakdown());
var clone = tr.v.d.DiagnosticMap.fromDict(diagnostics.asDict());
assert.instanceOf(clone.get('generic'), tr.v.d.Generic);
assert.deepEqual(clone.get('generic').value,
diagnostics.get('generic').value);
assert.instanceOf(clone.get('breakdown'), tr.v.d.Breakdown);
assert.instanceOf(clone.get('events'), tr.v.d.RelatedEventSet);
assert.instanceOf(clone.get('value set'), tr.v.d.RelatedValueSet);
assert.instanceOf(clone.get('value map'), tr.v.d.RelatedValueMap);
assert.instanceOf(clone.get('histogram breakdown'),
tr.v.d.RelatedHistogramBreakdown);
});
test('requireFromDict', function() {
class MissingFromDict extends tr.v.d.Diagnostic { }
assert.throws(() => tr.v.d.Diagnostic.register(MissingFromDict));
class InvalidFromDict extends tr.v.d.Diagnostic {
static fromDict() {
}
}
assert.throws(() => tr.v.d.Diagnostic.register(InvalidFromDict));
});
});
</script>