blob: 9198ad09752ce91d39d23ed786db0afab31ccf6e [file] [log] [blame]
var assert = require("assert"),
utils = require("./utils");
var Console;
before(function(done) {
utils.loadTab('dom.html', function(aTab) {
Console = aTab.Console;
done();
});
});
// Console - evaluateJS()
describe('evaluateJS()', function() {
it('should evaluate expr to number', function(done) {
Console.evaluateJS('6 + 7', function(err, resp) {
assert.strictEqual(err, null);
assert.equal(resp.result, 13);
done();
})
})
it('should evaluate expr to boolean', function(done) {
Console.evaluateJS('!!window', function(err, resp) {
assert.strictEqual(err, null);
assert.strictEqual(resp.result, true);
done();
})
})
it('should evaluate expr to string', function(done) {
Console.evaluateJS('"hello"', function(err, resp) {
assert.strictEqual(err, null);
assert.equal(resp.result, "hello");
done();
})
})
it('should evaluate expr to JSObject', function(done) {
Console.evaluateJS('x = {a: 2, b: "hello"}', function(err, resp) {
assert.strictEqual(err, null);
assert.ok(resp.result.ownPropertyNames, "result has JSObject methods");
done();
})
})
it('should evaluate to undefined', function(done) {
Console.evaluateJS('undefined', function(err, resp) {
assert.strictEqual(err, null);
assert.ok(resp.result.type, "undefined");
done();
})
})
it('should have exception in response', function(done) {
Console.evaluateJS('blargh', function(err, resp) {
assert.strictEqual(err, null);
assert.equal(resp.exception.class, "Error"); // TODO: error should be JSObject
assert.equal(resp.exceptionMessage, "ReferenceError: blargh is not defined");
done();
})
})
})