blob: ea11b36017b159cfc4626351bc7df0e26c8615e2 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<!--
Copyright (c) 2012 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.
-->
<head>
<title>Model tests</title>
<style>
.view {
border: 1px solid black;
margin: 10px;
}
.find-dialog {
border: 1px solid black;
margin: 10px;
}
</style>
<script src="base.js"></script>
<script>
base.require('unittest');
base.require('test_utils');
base.require('model.slice');
base.require('filter');
</script>
</head>
<body>
<script>
'use strict';
var Slice = tracing.model.Slice;
var TitleFilter = tracing.TitleFilter;
var CategoryFilter = tracing.CategoryFilter;
function testTitleFilter() {
var s0 = test_utils.newSlice(1, 3);
assertFalse(new TitleFilter('').matchSlice(s0));
assertTrue(new TitleFilter('a').matchSlice(s0));
assertFalse(new TitleFilter('x').matchSlice(s0));
var s1 = test_utils.newSliceNamed('ba', 1, 3);
assertTrue(new TitleFilter('a').matchSlice(s1));
assertTrue(new TitleFilter('ba').matchSlice(s1));
assertFalse(new TitleFilter('x').matchSlice(s1));
var c0 = test_utils.newCounter(null);
assertFalse(new TitleFilter('').matchCounter(c0));
assertTrue(new TitleFilter('a').matchCounter(c0));
assertFalse(new TitleFilter('x').matchCounter(c0));
var c1 = test_utils.newCounterNamed(null, 'ba');
assertTrue(new TitleFilter('a').matchCounter(c1));
assertTrue(new TitleFilter('ba').matchCounter(c1));
assertFalse(new TitleFilter('x').matchCounter(c1));
}
function testCategoryFilter() {
var sNoCategory = test_utils.newSlice(1, 3);
sNoCategory.category = undefined;
assertTrue(new CategoryFilter(['x']).matchSlice(sNoCategory));
var s0 = test_utils.newSlice(1, 3);
s0.category = 'x';
assertFalse(new CategoryFilter(['x']).matchSlice(s0));
var s1 = test_utils.newSliceNamed('ba', 1, 3);
s1.category = 'y';
assertTrue(new CategoryFilter(['x']).matchSlice(s1));
assertFalse(new CategoryFilter(['y']).matchSlice(s1));
assertFalse(new CategoryFilter(['x', 'y']).matchSlice(s1));
var cNoCategory = test_utils.newCounterCategory(null, undefined, 'a');
assertTrue(new CategoryFilter(['x']).matchCounter(cNoCategory));
var c0 = test_utils.newCounterCategory(null, 'x', 'a');
assertFalse(new CategoryFilter(['x']).matchCounter(c0));
var c1 = test_utils.newCounterCategory(null, 'y', 'ba');
assertTrue(new CategoryFilter(['x']).matchCounter(c1));
assertFalse(new CategoryFilter(['y']).matchCounter(c1));
assertFalse(new CategoryFilter(['x', 'y']).matchCounter(c1));
}
function testFilterSliceArray() {
var slices = [
test_utils.newSliceNamed('ba', 1, 3),
test_utils.newSliceNamed('ab', 1, 3),
test_utils.newSliceNamed('x', 1, 3),
test_utils.newSliceNamed('axa', 1, 3)
];
var filter = new TitleFilter('a');
var matched = tracing.filterSliceArray(filter, slices);
assertEquals(3, matched.length);
assertEquals('ba', matched[0].title);
assertEquals('ab', matched[1].title);
assertEquals('axa', matched[2].title);
}
function testFilterCounterArray() {
var counters = [
test_utils.newCounterNamed(null, 'ba'),
test_utils.newCounterNamed(null, 'ab'),
test_utils.newCounterNamed(null, 'x'),
test_utils.newCounterNamed(null, 'axa')
];
var filter = new TitleFilter('a');
var matched = tracing.filterCounterArray(filter, counters);
assertEquals(3, matched.length);
assertEquals('ba', matched[0].name);
assertEquals('ab', matched[1].name);
assertEquals('axa', matched[2].name);
}
</script>
</body>
</html>