Skip to content

Commit 1735997

Browse files
authored
Merge pull request #7245 from OmarShehata/bad-specs
Fix broken VideoSynchronizer Specs
2 parents d5753b7 + ca123a3 commit 1735997

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

Specs/Core/VideoSynchronizerSpec.js

+23-16
Original file line numberDiff line numberDiff line change
@@ -160,28 +160,35 @@ defineSuite([
160160
var epoch = JulianDate.fromIso8601('2015-11-01T00:00:00Z');
161161
var clock = new Clock();
162162

163-
var element = loadVideo();
163+
// Since Chrome doesn't allow video playback without user
164+
// interaction, we use a mock element.
165+
var element = jasmine.createSpyObj('MockVideoElement', ['addEventListener', 'removeEventListener', 'play', 'pause']);
166+
element.paused = false;
167+
element.play.and.callFake(function() {
168+
this.paused = false;
169+
});
170+
element.pause.and.callFake(function() {
171+
this.paused = true;
172+
});
164173

165174
var videoSynchronizer = new VideoSynchronizer({
166175
clock : clock,
167176
element : element,
168177
epoch : epoch
169178
});
170179

171-
return pollToPromise(function() {
172-
clock.shouldAnimate = false;
173-
clock.tick();
174-
return element.paused === true;
175-
}).then(function() {
176-
clock.shouldAnimate = true;
177-
clock.tick();
178-
return element.paused === false;
179-
}).then(function() {
180-
clock.shouldAnimate = false;
181-
clock.tick();
182-
return element.paused === true;
183-
}).then(function() {
184-
videoSynchronizer.destroy();
185-
});
180+
clock.shouldAnimate = false;
181+
clock.tick();
182+
expect(element.pause.calls.count()).toEqual(1);
183+
184+
clock.shouldAnimate = true;
185+
clock.tick();
186+
expect(element.play.calls.count()).toEqual(1);
187+
188+
clock.shouldAnimate = false;
189+
clock.tick();
190+
expect(element.pause.calls.count()).toEqual(2);
191+
192+
videoSynchronizer.destroy();
186193
});
187194
});

0 commit comments

Comments
 (0)