blob: b20deb57c3014cc0dcda3a2f36de753326e6a19e [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2015 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="/base/event_target.html">
<link rel="import" href="/core/scripting_controller.html">
<link rel="import" href="/core/test_utils.html">
<link rel="import" href="/model/event_set.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
function FakeBrushingStateController() {
tr.b.EventTarget.call(this);
this.addAllEventsMatchingFilterToSelectionReturnValue = [];
this.viewport = undefined;
this.model = undefined;
this.selection = new tr.model.EventSet();
this.highlight = new tr.model.EventSet();
}
FakeBrushingStateController.prototype = {
__proto__: tr.b.EventTarget.prototype
};
test('scriptingControllerBasicArithmetic', function() {
var brushingStateController = new FakeBrushingStateController();
var controller = new tr.c.ScriptingController(brushingStateController);
var result = controller.executeCommand('1 + 1');
assert.equal(result, 2);
});
test('scriptingControllerNonLocalContext', function() {
var brushingStateController = new FakeBrushingStateController();
var controller = new tr.c.ScriptingController(brushingStateController);
var x = 1;
controller.executeCommand('x = 2');
assert.equal(x, 1);
});
test('scriptingControllerModifyGlobalContext', function() {
var brushingStateController = new FakeBrushingStateController();
var controller = new tr.c.ScriptingController(brushingStateController);
global._x = 1;
controller.executeCommand('_x = 2');
assert.equal(global._x, 2);
delete global._x;
});
test('scriptingControllerPersistentContext', function() {
var brushingStateController = new FakeBrushingStateController();
var controller = new tr.c.ScriptingController(brushingStateController);
controller.executeCommand('a = 42');
var result = controller.executeCommand('a');
assert.equal(result, 42);
});
test('scriptingControllerAddScriptObject', function() {
var brushingStateController = new FakeBrushingStateController();
var controller = new tr.c.ScriptingController(brushingStateController);
controller.addScriptObject('z', 123);
var result = controller.executeCommand('z');
assert.equal(result, 123);
});
test('scriptingControllerObjectRegistry', function() {
var brushingStateController = new FakeBrushingStateController();
tr.c.ScriptingObjectRegistry.register(
function() { return 123; },
{
name: 'testFunctionName'
}
);
var controller = new tr.c.ScriptingController(brushingStateController);
var result = controller.executeCommand('testFunctionName()');
assert.equal(result, 123);
});
});
</script>