|
4 | 4 | * __init.test.js is run before every test case. |
5 | 5 | */ |
6 | 6 | window.debug = true |
7 | | -var AScene = require('aframe').AScene |
8 | 7 |
|
9 | 8 | navigator.getVRDisplays = function () { |
10 | 9 | var resolvePromise = Promise.resolve() |
11 | 10 | var mockVRDisplay = { |
12 | | - requestPresent: resolvePromise, |
| 11 | + cancelAnimationFrame: function (h) { return window.cancelAnimationFrame(1) }, |
| 12 | + capabilities: {}, |
13 | 13 | exitPresent: resolvePromise, |
14 | | - getPose: function () { return {orientation: null, position: null} }, |
15 | | - requestAnimationFrame: function () { return 1 } |
| 14 | + getPose: function () { return { orientation: null, position: null } }, |
| 15 | + requestAnimationFrame: function () { return 1 }, |
| 16 | + requestPresent: resolvePromise, |
| 17 | + submitFrame: function () {} |
16 | 18 | } |
17 | 19 | return Promise.resolve([mockVRDisplay]) |
18 | 20 | } |
19 | 21 |
|
| 22 | +var AScene = require('aframe').AScene |
| 23 | + |
20 | 24 | setup(function () { |
21 | 25 | this.sinon = sinon.sandbox.create() |
22 | 26 | // Stubs to not create a WebGL context since Travis CI runs headless. |
23 | 27 | this.sinon.stub(AScene.prototype, 'render') |
24 | | - this.sinon.stub(AScene.prototype, 'resize') |
25 | 28 | this.sinon.stub(AScene.prototype, 'setupRenderer') |
| 29 | + // Mock renderer. |
| 30 | + AScene.prototype.renderer = { |
| 31 | + xr: { |
| 32 | + getDevice: function () { return {requestPresent: function () {}} }, |
| 33 | + isPresenting: function () { return true }, |
| 34 | + setDevice: function () {}, |
| 35 | + setPoseTarget: function () {}, |
| 36 | + enabled: false |
| 37 | + }, |
| 38 | + getContext: function () { return undefined }, |
| 39 | + setAnimationLoop: function () {}, |
| 40 | + setSize: function () {}, |
| 41 | + setPixelRatio: function () {}, |
| 42 | + shadowMap: {} |
| 43 | + } |
26 | 44 | }) |
27 | 45 |
|
28 | | -teardown(function () { |
| 46 | +teardown(function (done) { |
29 | 47 | // Clean up any attached elements. |
30 | 48 | var attachedEls = ['canvas', 'a-assets', 'a-scene'] |
31 | 49 | var els = document.querySelectorAll(attachedEls.join(',')) |
32 | 50 | for (var i = 0; i < els.length; i++) { |
33 | 51 | els[i].parentNode.removeChild(els[i]) |
34 | 52 | } |
35 | 53 | this.sinon.restore() |
36 | | - delete window.NAF |
| 54 | + |
| 55 | + // Allow detachedCallbacks to clean themselves up. |
| 56 | + setTimeout(function () { |
| 57 | + done() |
| 58 | + }) |
37 | 59 | }) |
0 commit comments