| <!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>TimelineCategoryFilter tests</title> |
| <script src="base.js"></script> |
| </head> |
| <body> |
| <script> |
| base.require('unittest'); |
| base.require('test_utils'); |
| base.require('settings'); |
| base.require('timeline_category_filter_dialog'); |
| base.require('timeline_model'); |
| </script> |
| <script> |
| 'use strict'; |
| |
| var testModel = new tracing.TimelineModel(); |
| var p1 = testModel.getOrCreateProcess(1); |
| var t1 = p1.getOrCreateThread(1); |
| t1.pushSlice(new tracing.TimelineThreadSlice('one', 'a', 0, 1, {}, 3)); |
| t1.pushSlice(new tracing.TimelineThreadSlice('two', 'b', 0, 1, {}, 3)); |
| t1.pushSlice(new tracing.TimelineThreadSlice('three', 'c', 0, 1, {}, 3)); |
| t1.pushSlice(new tracing.TimelineThreadSlice('', 'd', 0, 1, {}, 3)); |
| t1.pushSlice(new tracing.TimelineThreadSlice('one', 'e', 0, 1, {}, 3)); |
| testModel.updateCategories_(); |
| |
| |
| |
| function testCategoryFilterDialog_UpdateForm_NoSettings() { |
| var settings = new base.Settings(); |
| |
| var dlg = new tracing.TimelineCategoryFilterDialog(); |
| dlg.model = testModel; |
| dlg.settings = settings; |
| dlg.updateForm_(); |
| |
| var checkboxes = dlg.formEl_.getElementsByTagName('input'); |
| assertEquals(3, checkboxes.length); |
| assertEquals('one', checkboxes[0].id); |
| assertEquals('one', checkboxes[0].value); |
| assertEquals(true, checkboxes[0].checked); |
| assertEquals('two', checkboxes[1].id); |
| assertEquals('two', checkboxes[1].value); |
| assertEquals(true, checkboxes[1].checked); |
| assertEquals('three', checkboxes[2].id); |
| assertEquals('three', checkboxes[2].value); |
| assertEquals(true, checkboxes[2].checked); |
| var labels = dlg.formEl_.getElementsByTagName('label'); |
| assertEquals(3, labels.length); |
| assertEquals('one', labels[0].textContent); |
| assertEquals('two', labels[1].textContent); |
| assertEquals('three', labels[2].textContent); |
| } |
| |
| function testCategoryFilterDialog_UpdateForm_Settings() { |
| var settings = new base.Settings(); |
| settings.set('one', true, 'categories'); |
| settings.set('two', false, 'categories'); |
| |
| var dlg = new tracing.TimelineCategoryFilterDialog(); |
| dlg.model = testModel; |
| dlg.settings = settings; |
| dlg.updateForm_(); |
| |
| var checkboxes = dlg.formEl_.getElementsByTagName('input'); |
| assertEquals(3, checkboxes.length); |
| assertEquals('one', checkboxes[0].id); |
| assertEquals('one', checkboxes[0].value); |
| assertEquals(true, checkboxes[0].checked); |
| assertEquals('two', checkboxes[1].id); |
| assertEquals('two', checkboxes[1].value); |
| assertEquals(false, checkboxes[1].checked); |
| assertEquals('three', checkboxes[2].id); |
| assertEquals('three', checkboxes[2].value); |
| assertEquals(true, checkboxes[2].checked); |
| var labels = dlg.formEl_.getElementsByTagName('label'); |
| assertEquals(3, labels.length); |
| assertEquals('one', labels[0].textContent); |
| assertEquals('two', labels[1].textContent); |
| assertEquals('three', labels[2].textContent); |
| } |
| |
| </script> |
| </body> |
| </html> |