blob: 11cbf7936cff935874800e74ccdc323c49e768a2 [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>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>