blob: 135f2518a8b34db1f8a5dd2b1b67d98a9f4ff459 [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/metrics/metric_registry.html">
<link rel="import" href="/tracing/value/histogram.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
test('FindMetricByName', function() {
function sampleMetricA(values, model) {
var n1 = new tr.v.Histogram('foo', tr.b.Unit.byName.count);
n1.addSample(1);
values.addHistogram(n1);
}
tr.metrics.MetricRegistry.register(sampleMetricA);
function sampleMetricB(values, model) {
var n1 = new tr.v.Histogram('foo', tr.b.Unit.byName.count);
var n2 = new tr.v.Histogram('bar', tr.b.Unit.byName.count);
n1.addSample(1);
n2.addSample(2);
values.addHistogram(n1);
values.addHistogram(n2);
}
tr.metrics.MetricRegistry.register(sampleMetricB);
function sampleMetricC(values, model) {
var n1 = new tr.v.Histogram('foo', tr.b.Unit.byName.count);
var n2 = new tr.v.Histogram('bar', tr.b.Unit.byName.count);
var n3 = new tr.v.Histogram('baz', tr.b.Unit.byName.count);
n1.addSample(1);
n2.addSample(2);
n3.addSample(3);
values.addHistogram(n1);
values.addHistogram(n2);
values.addHistogram(n3);
}
tr.metrics.MetricRegistry.register(sampleMetricC);
var typeInfo = tr.metrics.MetricRegistry.findTypeInfoWithName(
'sampleMetricB');
assert.strictEqual(typeInfo.constructor, sampleMetricB);
});
test('registerNonFunctionThrows', function() {
assert.throws(function() {
tr.metrics.MetricRegistry.register('not a function');
});
assert.throws(function() {
tr.metrics.MetricRegistry.register(function() {});
});
assert.throws(function() {
tr.metrics.MetricRegistry.register(function(a) {});
});
});
});
</script>