| <!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> |