blob: 43d1427e0c4b2bb01b66cefa00871a50586ed10d [file] [log] [blame]
var test = require('tape');
var $ = require('../src/util/jquery');
var defineClass = require('../src/util/define-class');
var vanadiumWrapper = require('../src/vanadium-wrapper');
var vanadiumMocks = require('../mocks/vanadium');
var MockVanadium = vanadiumMocks.MockVanadium;
var MockRuntime = vanadiumMocks.MockRuntime;
function setUpCrashTest(t) {
var mockVanadium = new MockVanadium(t);
var mockRuntime = new MockRuntime();
var context = {
bindCrashHandler: function(err) {
var self = this;
self.vanadiumWrapper.crash.add(function(err) {
self.crashErr = err;
});
},
crash: function(err) {
mockRuntime.fireCrash(err);
}
};
vanadiumWrapper.init(mockVanadium).then(
function(v) {
context.vanadiumWrapper = v;
},
function(err) {
t.fail('init error');
});
mockVanadium.finishInit(null, mockRuntime);
return context;
}
test('crashBefore', function(t) {
var crashTest = setUpCrashTest(t);
crashTest.crash('I lost the game.');
crashTest.bindCrashHandler();
t.equal(crashTest.crashErr, 'I lost the game.');
t.end();
});
test('crashAfter', function(t) {
var crashTest = setUpCrashTest(t);
crashTest.bindCrashHandler();
t.notOk(crashTest.crashErr, 'no crash yet');
crashTest.crash('I lost the game.');
t.equal(crashTest.crashErr, 'I lost the game.');
t.end();
});