|
|
@ -550,32 +550,40 @@ QUnit.test('uses current time when seekable range is well before current time', |
|
|
|
QUnit.module('mediaDuration'); |
|
|
|
|
|
|
|
QUnit.test('0 when no timing info', function(assert) { |
|
|
|
assert.equal(mediaDuration({}, {}), 0, '0 when no timing info'); |
|
|
|
assert.equal(mediaDuration({ start: 1 }, { start: 1 }), 0, '0 when no end times'); |
|
|
|
assert.equal(mediaDuration({ end: 1 }, { end: 1 }), 0, '0 when no start times'); |
|
|
|
assert.equal(mediaDuration({}), 0, '0 when no timing info'); |
|
|
|
assert.equal( |
|
|
|
mediaDuration({audioTimingInfo: {start: 1}, videoTimingInfo: {start: 1}}), |
|
|
|
0, |
|
|
|
'0 when no end times' |
|
|
|
); |
|
|
|
assert.equal( |
|
|
|
mediaDuration({audioTimingInfo: {end: 1}, videoTimingInfo: {end: 1}}), |
|
|
|
0, |
|
|
|
'0 when no start times' |
|
|
|
); |
|
|
|
}); |
|
|
|
|
|
|
|
QUnit.test('reports audio duration', function(assert) { |
|
|
|
assert.equal( |
|
|
|
mediaDuration({ start: 1, end: 2 }, {}), |
|
|
|
mediaDuration({audioTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'audio duration when no video info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({ start: 1, end: 2 }, { start: 1 }), |
|
|
|
mediaDuration({audioTimingInfo: {start: 1, end: 2}, videoTimingInfo: {start: 1}}), |
|
|
|
1, |
|
|
|
'audio duration when not enough video info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({ start: 1, end: 2 }, { end: 3 }), |
|
|
|
mediaDuration({audioTimingInfo: {start: 1, end: 2}, videoTimingInfo: {end: 3}}), |
|
|
|
1, |
|
|
|
'audio duration when not enough video info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({ start: 1, end: 3 }, { start: 1, end: 2 }), |
|
|
|
mediaDuration({audioTimingInfo: {start: 1, end: 3}, videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
2, |
|
|
|
'audio duration when audio duration > video duration' |
|
|
|
); |
|
|
@ -583,25 +591,67 @@ QUnit.test('reports audio duration', function(assert) { |
|
|
|
|
|
|
|
QUnit.test('reports video duration', function(assert) { |
|
|
|
assert.equal( |
|
|
|
mediaDuration({}, { start: 1, end: 2 }), |
|
|
|
mediaDuration({videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'video duration when no audio info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({audioTimingInfo: {start: 1}, videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'video duration when not enough audio info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({audioTimingInfo: {end: 3}, videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'video duration when not enough audio info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({audioTimingInfo: {start: 1, end: 2}, videoTimingInfo: {start: 1, end: 3}}), |
|
|
|
2, |
|
|
|
'video duration when video duration > audio duration' |
|
|
|
); |
|
|
|
}); |
|
|
|
|
|
|
|
if (window.BigInt) { |
|
|
|
QUnit.test('handles bigint', function(assert) { |
|
|
|
assert.equal( |
|
|
|
mediaDuration({audioTimingInfo: {start: window.BigInt(1), end: window.BigInt(2)}}), |
|
|
|
1, |
|
|
|
'audio duration when no video info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({videoTimingInfo: {start: window.BigInt(1), end: window.BigInt(2)}}), |
|
|
|
1, |
|
|
|
'video duration when no audio info' |
|
|
|
); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
QUnit.test('reports video duration', function(assert) { |
|
|
|
assert.equal( |
|
|
|
mediaDuration({videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'video duration when no audio info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({ start: 1 }, { start: 1, end: 2 }), |
|
|
|
mediaDuration({audioTimingInfo: {start: 1}, videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'video duration when not enough audio info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({ end: 3 }, { start: 1, end: 2 }), |
|
|
|
mediaDuration({audioTimingInfo: {end: 3}, videoTimingInfo: {start: 1, end: 2}}), |
|
|
|
1, |
|
|
|
'video duration when not enough audio info' |
|
|
|
); |
|
|
|
|
|
|
|
assert.equal( |
|
|
|
mediaDuration({ start: 1, end: 2 }, { start: 1, end: 3 }), |
|
|
|
mediaDuration({audioTimingInfo: {start: 1, end: 2}, videoTimingInfo: {start: 1, end: 3}}), |
|
|
|
2, |
|
|
|
'video duration when video duration > audio duration' |
|
|
|
); |
|
|
|