| <!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/unittest.html"> |
| <link rel="import" href="/tracing/core/filter.html"> |
| <link rel="import" href="/tracing/core/test_utils.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| var TitleOrCategoryFilter = tr.c.TitleOrCategoryFilter; |
| var ExactTitleFilter = tr.c.ExactTitleFilter; |
| var FullTextFilter = tr.c.FullTextFilter; |
| |
| test('titleOrCategoryFilter', function() { |
| assert.throw(function() { |
| new TitleOrCategoryFilter(); |
| }); |
| assert.throw(function() { |
| new TitleOrCategoryFilter(''); |
| }); |
| |
| var s0 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'a', start: 1, duration: 3}); |
| assert.isTrue(new TitleOrCategoryFilter('a').matchSlice(s0)); |
| assert.isTrue(new TitleOrCategoryFilter('cat').matchSlice(s0)); |
| assert.isTrue(new TitleOrCategoryFilter('at').matchSlice(s0)); |
| assert.isFalse(new TitleOrCategoryFilter('b').matchSlice(s0)); |
| assert.isFalse(new TitleOrCategoryFilter('X').matchSlice(s0)); |
| |
| var s1 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'abc', start: 1, duration: 3}); |
| assert.isTrue(new TitleOrCategoryFilter('abc').matchSlice(s1)); |
| assert.isTrue(new TitleOrCategoryFilter('Abc').matchSlice(s1)); |
| assert.isTrue(new TitleOrCategoryFilter('cat').matchSlice(s1)); |
| assert.isTrue(new TitleOrCategoryFilter('Cat').matchSlice(s1)); |
| assert.isFalse(new TitleOrCategoryFilter('cat1').matchSlice(s1)); |
| assert.isFalse(new TitleOrCategoryFilter('X').matchSlice(s1)); |
| }); |
| |
| test('exactTitleFilter', function() { |
| assert.throw(function() { |
| new ExactTitleFilter(); |
| }); |
| assert.throw(function() { |
| new ExactTitleFilter(''); |
| }); |
| |
| var s0 = tr.c.TestUtils.newSliceEx({title: 'a', start: 1, duration: 3}); |
| assert.isTrue(new ExactTitleFilter('a').matchSlice(s0)); |
| assert.isFalse(new ExactTitleFilter('b').matchSlice(s0)); |
| assert.isFalse(new ExactTitleFilter('A').matchSlice(s0)); |
| |
| var s1 = tr.c.TestUtils.newSliceEx({title: 'abc', start: 1, duration: 3}); |
| assert.isTrue(new ExactTitleFilter('abc').matchSlice(s1)); |
| assert.isFalse(new ExactTitleFilter('Abc').matchSlice(s1)); |
| assert.isFalse(new ExactTitleFilter('bc').matchSlice(s1)); |
| assert.isFalse(new ExactTitleFilter('a').matchSlice(s1)); |
| }); |
| |
| test('fullTextFilter', function() { |
| assert.throw(function() { |
| new FullTextFilter(); |
| }); |
| assert.throw(function() { |
| new FullTextFilter(''); |
| }); |
| |
| var s0 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'a', start: 1, duration: 3}); |
| s0.args['key'] = 'value'; |
| s0.args['anotherKey'] = 'anotherValue'; |
| assert.isTrue(new FullTextFilter('cat').matchSlice(s0)); |
| assert.isTrue(new FullTextFilter('a').matchSlice(s0)); |
| assert.isTrue(new FullTextFilter('key').matchSlice(s0)); |
| assert.isTrue(new FullTextFilter('value').matchSlice(s0)); |
| assert.isTrue(new FullTextFilter('anotherValue').matchSlice(s0)); |
| assert.isFalse(new FullTextFilter('not there').matchSlice(s0)); |
| |
| var s1 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'a', start: 1, duration: 3}); |
| s1.args['key'] = 123; |
| assert.isTrue(new FullTextFilter('123').matchSlice(s1)); |
| |
| var s2 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'a', start: 1, duration: 3}); |
| s2.args['key'] = ['innerValue1', 'innerValue2']; |
| assert.isTrue(new FullTextFilter('innerValue1').matchSlice(s2)); |
| assert.isTrue(new FullTextFilter('innerValue2').matchSlice(s2)); |
| |
| var s3 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'a', start: 1, duration: 3}); |
| s3.args['key'] = ['one', 'two', 'three']; |
| assert.isTrue(new FullTextFilter('two').matchSlice(s3)); |
| |
| var s4 = tr.c.TestUtils.newSliceEx( |
| {cat: 'cat', title: 'a', start: 1, duration: 3}); |
| s4.args['key'] = undefined; |
| assert.isFalse(new FullTextFilter('not there').matchSlice(s4)); |
| }); |
| }); |
| </script> |