| Index: tracing/tracing/extras/tquery/tquery_test.html
|
| diff --git a/tracing/tracing/extras/tquery/tquery_test.html b/tracing/tracing/extras/tquery/tquery_test.html
|
| index 4c38ac93dcbc7fe290ddf47b75012141f5f31155..f822a6c5c8e3381a70a8be1be233b6f6d0741c80 100644
|
| --- a/tracing/tracing/extras/tquery/tquery_test.html
|
| +++ b/tracing/tracing/extras/tquery/tquery_test.html
|
| @@ -5,76 +5,28 @@ 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/event_target.html">
|
| -<link rel="import" href="/tracing/base/task.html">
|
| <link rel="import" href="/tracing/core/scripting_controller.html">
|
| +<link rel="import" href="/tracing/core/test_utils.html">
|
| <link rel="import" href="/tracing/extras/tquery/tquery.html">
|
| -<link rel="import" href="/tracing/model/event_set.html">
|
| +<link rel="import" href="/tracing/model/model.html">
|
|
|
| <script>
|
| 'use strict';
|
|
|
| -tr.exportTo('tr.e.tquery', function() {
|
| - function FakeBrushingStateController() {
|
| - tr.b.EventTarget.call(this);
|
| - this.allEvents_ = [];
|
| - }
|
| -
|
| - FakeBrushingStateController.prototype = {
|
| - __proto__: tr.b.EventTarget.prototype,
|
| -
|
| - get allEvents() {
|
| - return this.allEvents_;
|
| - },
|
| -
|
| - set allEvents(allEvents) {
|
| - this.allEvents_ = allEvents;
|
| - var e = new tr.b.Event('model-changed');
|
| - this.dispatchEvent(e);
|
| - },
|
| -
|
| - addAllEventsMatchingFilterToSelectionAsTask: function(filter, selection) {
|
| - return new tr.b.Task(function() {
|
| - var n = this.allEvents.length;
|
| - for (var i = 0; i < n; i++) {
|
| - this.addSubtreeToSelection_(selection, this.allEvents[i]);
|
| - }
|
| - }, this);
|
| - },
|
| -
|
| - addSubtreeToSelection_: function(selection, event) {
|
| - selection.push(event);
|
| - if (event.subSlices) {
|
| - for (var i = 0; i < event.subSlices.length; i++) {
|
| - this.addSubtreeToSelection_(selection, event.subSlices[i]);
|
| - }
|
| - }
|
| - },
|
| - showScriptControlSelection: function(selection) {
|
| - this.selection = new tr.model.EventSet();
|
| - this.highlight = selection;
|
| - }
|
| - };
|
| - return {
|
| - FakeBrushingStateController: FakeBrushingStateController
|
| - };
|
| -});
|
| -
|
| tr.b.unittest.testSuite(function() {
|
| - var FakeBrushingStateController = tr.e.tquery.FakeBrushingStateController;
|
| -
|
| - function createSliceArray(sliceCount) {
|
| - var allEvents = [];
|
| - for (var i = 0; i < sliceCount; i++) {
|
| - allEvents.push({guid: i});
|
| - }
|
| - return allEvents;
|
| + function createTestModel(sliceCount) {
|
| + var slices = [];
|
| + for (var i = 0; i < sliceCount; i++)
|
| + slices.push(tr.c.TestUtils.newSlice(1, 2));
|
| + return createTestModelWithSlices(slices);
|
| }
|
|
|
| - function createFakeBrushingStateController_(sliceCount) {
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = createSliceArray(sliceCount);
|
| - return brushingStateController;
|
| + function createTestModelWithSlices(slices) {
|
| + var model = new tr.Model();
|
| + var cpu = model.kernel.getOrCreateCpu(1);
|
| + for (var i = 0; i < slices.length; i++)
|
| + cpu.slices.push(slices[i]);
|
| + return model;
|
| }
|
|
|
| function getScriptObject(name) {
|
| @@ -87,44 +39,42 @@ tr.b.unittest.testSuite(function() {
|
| }
|
|
|
| test('tqueryAsyncSelection', function() {
|
| - var brushingStateController = createFakeBrushingStateController_(3);
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + var model = createTestModel(3);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| - var result = tquery.show();
|
| - tr.b.Task.RunSynchronously(result);
|
| - assert.equal(brushingStateController.highlight.length, 3);
|
| + return tquery.ready().then(function(selection) {
|
| + assert.equal(selection.length, 3);
|
| + });
|
| });
|
|
|
| test('tquerySyncSelection', function() {
|
| - var brushingStateController = createFakeBrushingStateController_(3);
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + var model = createTestModel(3);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| assert.equal(tquery.selection.length, 3);
|
|
|
| // Selection should get reset when the model changes.
|
| - brushingStateController.allEvents = createSliceArray(5);
|
| - tquery.onModelChanged();
|
| + var model = createTestModel(5);
|
| + tquery.onModelChanged(model);
|
| assert.equal(tquery.selection.length, 5);
|
| });
|
|
|
| test('tqueryPassThroughFiltering', function() {
|
| - var brushingStateController = new createFakeBrushingStateController_(3);
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + var model = new createTestModel(3);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| - var result = tquery.filter().filter().show();
|
| - tr.b.Task.RunSynchronously(result);
|
| - assert.equal(brushingStateController.highlight.length, 3);
|
| + var result = tquery.filter().filter().selection;
|
| + assert.equal(result.length, 3);
|
| });
|
|
|
| test('tqueryFilterHasTitle', function() {
|
| var hasTitle = getScriptObject('hasTitle');
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = [
|
| + var model = createTestModelWithSlices([
|
| {guid: 1, title: 'a'},
|
| {guid: 2, title: 'b'},
|
| {guid: 3, title: 'c'}
|
| - ];
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + ]);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| var result = tquery.filter(hasTitle('a')).selection;
|
| assert.equal(result.length, 1);
|
| @@ -141,13 +91,12 @@ tr.b.unittest.testSuite(function() {
|
|
|
| test('tqueryFilterHasAncestor', function() {
|
| var hasAncestor = getScriptObject('hasAncestor');
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = [
|
| + var model = createTestModelWithSlices([
|
| {guid: 1, title: 'a'},
|
| {guid: 2, title: 'b', subSlices: [{guid: 4}]},
|
| {guid: 3, title: 'c'}
|
| - ];
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + ]);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| var result = tquery.filter(hasAncestor('b')).selection;
|
| assert.equal(result.length, 1);
|
| @@ -163,13 +112,12 @@ tr.b.unittest.testSuite(function() {
|
|
|
| test('tqueryFilterAllOf', function() {
|
| var allOf = getScriptObject('allOf');
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = [
|
| + var model = createTestModelWithSlices([
|
| {guid: 1, title: 'a1'},
|
| {guid: 2, title: 'b1'},
|
| {guid: 3, title: 'c1'}
|
| - ];
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + ]);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| var result = tquery.filter(allOf('a1')).selection;
|
| assert.equal(result.length, 1);
|
| @@ -185,13 +133,12 @@ tr.b.unittest.testSuite(function() {
|
|
|
| test('tqueryFilterAnyOf', function() {
|
| var anyOf = getScriptObject('anyOf');
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = [
|
| + var model = createTestModelWithSlices([
|
| {guid: 1, title: 'a'},
|
| {guid: 2, title: 'b'},
|
| {guid: 3, title: 'c'}
|
| - ];
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + ]);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| var result = tquery.filter(anyOf('a', 'b')).selection;
|
| assert.equal(result.length, 2);
|
| @@ -208,13 +155,12 @@ tr.b.unittest.testSuite(function() {
|
|
|
| test('tqueryFilterIsTopLevel', function() {
|
| var isTopLevel = getScriptObject('isTopLevel');
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = [
|
| + var model = createTestModelWithSlices([
|
| {guid: 1, title: 'a'},
|
| {guid: 2, title: 'b', subSlices: [{guid: 4}]},
|
| {guid: 3, title: 'c'}
|
| - ];
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + ]);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| var result = tquery.filter(isTopLevel()).selection;
|
| assert.equal(result.length, 3);
|
| @@ -229,14 +175,13 @@ tr.b.unittest.testSuite(function() {
|
|
|
| test('tqueryFilterHasDuration', function() {
|
| var hasDuration = getScriptObject('hasDuration');
|
| - var brushingStateController = new FakeBrushingStateController();
|
| - brushingStateController.allEvents = [
|
| + var model = createTestModelWithSlices([
|
| {guid: 1, title: 'a', duration: 1},
|
| {guid: 2, title: 'b', duration: 2},
|
| {guid: 3, title: 'c', duration: 3},
|
| {guid: 4, title: 'no duration'}
|
| - ];
|
| - var tquery = new tr.e.tquery.TQuery(brushingStateController);
|
| + ]);
|
| + var tquery = new tr.e.tquery.TQuery(model);
|
|
|
| var result = tquery.filter(hasDuration(1.5, 2.5)).selection;
|
| assert.equal(result.length, 1);
|
|
|