Manual revert the wrongly added progressive testsuite

Change-Id: I5cfac708d42e5343bae3c74c95f12dec0dfe149c
This commit is contained in:
jiashengyang 2018-02-01 14:50:12 -08:00
Родитель 944cbd0d8e
Коммит b8fd53ca56
1 изменённых файлов: 0 добавлений и 485 удалений

Просмотреть файл

@ -1,485 +0,0 @@
/*
Copyright 2018 Google Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
'use strict';
var ProgressiveTest = function() {
var tests = [];
var info = 'Default Timeout: ' + TestBase.timeout + 'ms';
var fields = ['passes', 'failures', 'timeouts'];
var createProgressiveTest = function(category, name, mandatory) {
var t = createTest(name);
t.prototype.category = category;
t.prototype.index = tests.length;
t.prototype.passes = 0;
t.prototype.failures = 0;
t.prototype.timeouts = 0;
t.prototype.mandatory = true;
if (typeof mandatory == 'boolean' && !mandatory)
t.prototype.mandatory = false;
tests.push(t);
return t;
};
var createInitialMediaStateTest = function(state, value, check) {
var test = createProgressiveTest('state before initial', state);
check = typeof(check) === 'undefined' ? 'checkEq' : check;
test.prototype.title = 'Test if the state ' + state +
' is correct when media element is just created';
test.prototype.start = function(runner, video) {
test.prototype.status = util.formatStatus(util.getAttr(video, state));
runner[check](util.getAttr(video, state), value, state);
runner.succeed();
};
};
createInitialMediaStateTest('src', ''); // can actually be undefined
createInitialMediaStateTest('currentSrc', '');
createInitialMediaStateTest('defaultPlaybackRate', 1);
createInitialMediaStateTest('playbackRate', 1);
createInitialMediaStateTest('duration', NaN);
createInitialMediaStateTest('paused', true);
createInitialMediaStateTest('seeking', false);
createInitialMediaStateTest('ended', false);
createInitialMediaStateTest('videoWidth', 0);
createInitialMediaStateTest('videoHeight', 0);
createInitialMediaStateTest('buffered.length', 0);
createInitialMediaStateTest('played.length', 0);
createInitialMediaStateTest('seekable.length', 0);
createInitialMediaStateTest('networkState', HTMLMediaElement.NETWORK_EMPTY);
createInitialMediaStateTest('readyState', HTMLMediaElement.HAVE_NOTHING);
var createMediaStateAfterSrcAssignedTest = function(state, value, check) {
var test = createProgressiveTest('state after src assigned', state);
check = typeof(check) === 'undefined' ? 'checkEq' : check;
test.prototype.title = 'Test if the state ' + state +
' is correct when media element is a src has been assigned';
test.prototype.start = function(runner, video) {
video.src = Media.H264.ProgressiveLow.src;
test.prototype.status = util.formatStatus(util.getAttr(video, state));
runner[check](util.getAttr(video, state), value, state);
runner.succeed();
};
};
createMediaStateAfterSrcAssignedTest('networkState',
HTMLMediaElement.NETWORK_NO_SOURCE);
createMediaStateAfterSrcAssignedTest('readyState',
HTMLMediaElement.HAVE_NOTHING);
createMediaStateAfterSrcAssignedTest('src', '', 'checkNE');
var createMediaStateInLoadStart = function(state, value, check) {
var test = createProgressiveTest('state in loadstart', state);
check = typeof(check) === 'undefined' ? 'checkEq' : check;
test.prototype.title = 'Test if the state ' + state +
' is correct when media element is a src has been assigned';
test.prototype.start = function(runner, video) {
video.addEventListener('loadstart', function() {
test.prototype.status = util.formatStatus(util.getAttr(video, state));
runner[check](util.getAttr(video, state), value, state);
runner.succeed();
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createMediaStateInLoadStart('networkState', HTMLMediaElement.NETWORK_LOADING);
createMediaStateInLoadStart('readyState', HTMLMediaElement.HAVE_NOTHING);
createMediaStateInLoadStart('currentSrc', '', 'checkNE');
var createProgressTest = function() {
var test = createProgressiveTest('event', 'onprogress');
test.prototype.title = 'Test if there is progress event.';
test.prototype.start = function(runner, video) {
var self = this;
video.src = Media.H264.ProgressiveLow.src + '?' + Date.now();
video.addEventListener('progress', function() {
self.log('onprogress called');
runner.succeed();
});
};
};
createProgressTest();
var createTimeUpdateTest = function() {
var test = createProgressiveTest('event', 'ontimeupdate');
test.prototype.title = 'Test if there is timeupdate event.';
test.prototype.start = function(runner, video) {
var self = this;
video.src = Media.H264.ProgressiveLow.src;
video.addEventListener('timeupdate', function() {
self.log('ontimeupdate called');
runner.succeed();
});
video.play();
};
};
createTimeUpdateTest();
var createCanPlayTest = function() {
var test = createProgressiveTest('event', 'canplay');
test.prototype.title = 'Test if there is canplay event.';
test.prototype.start = function(runner, video) {
var self = this;
video.src = Media.H264.ProgressiveLow.src;
video.addEventListener('canplay', function() {
self.log('canplay called');
runner.succeed();
});
};
};
createCanPlayTest();
var createAutoPlayTest = function() {
var test = createProgressiveTest('control', 'autoplay');
test.prototype.title = 'Test if autoplay works';
test.prototype.start = function(runner, video) {
var self = this;
video.autoplay = true;
video.src = Media.H264.ProgressiveLow.src;
video.addEventListener('timeupdate', function() {
self.log('ontimeupdate called');
runner.succeed();
});
};
};
createAutoPlayTest();
var createNetworkStateTest = function() {
var test = createProgressiveTest('state', 'networkState');
test.prototype.title = 'Test if the network state is correct';
test.prototype.start = function(runner, video) {
var self = this;
runner.checkEq(video.networkState, HTMLMediaElement.NETWORK_EMPTY,
'networkState');
video.addEventListener('suspend', function() {
self.log('onsuspend called');
var networkState = video.networkState;
if (networkState == HTMLMediaElement.NETWORK_LOADING) {
// Skip NETWORK_LOADING state wait until next suspend event to find
// NETWORK_IDLE state.
return;
}
runner.checkEq(networkState, HTMLMediaElement.NETWORK_IDLE,
'networkState');
runner.succeed();
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createNetworkStateTest();
var createPlayingWithoutDataPaused = function() {
var test = createProgressiveTest('play without data', 'paused');
test.prototype.title = 'Test if we can play without any data';
test.prototype.start = function(runner, video) {
video.src = 'hang.py';
video.play();
test.prototype.status = util.formatStatus(video.paused);
runner.checkEq(video.paused, false, 'video.paused');
runner.succeed();
};
};
createPlayingWithoutDataPaused();
var createPlayingWithoutDataWaiting = function() {
var test = createProgressiveTest('play without data', 'onwaiting');
test.prototype.title = 'Test if we can play without any data';
test.prototype.start = function(runner, video) {
video.addEventListener('waiting', function() {
runner.checkEq(video.currentTime, 0, 'video.currentTime');
runner.succeed();
});
video.src = 'hang.py';
video.play();
};
};
createPlayingWithoutDataWaiting();
var createTimeUpdateMaxGranularity = function(playbackRate) {
var test = createProgressiveTest('timeupdate', 'maxGranularityPlaybackRate' +
parseFloat(playbackRate).toFixed(2));
test.prototype.title = 'Test the time update granularity.';
test.prototype.start = function(runner, video) {
var warmUpCount = 15;
var maxGranularity = 0;
var times = 0;
var last = 0;
video.addEventListener('loadstart', function() {
video.playbackRate = playbackRate;
video.play();
video.addEventListener('timeupdate', function() {
if (times >= warmUpCount) {
var interval = Date.now() - last;
if (interval > maxGranularity)
maxGranularity = interval;
}
if (times === 50 + warmUpCount) {
maxGranularity = maxGranularity / 1000.0;
runner.checkLE(maxGranularity, 0.26, 'maxGranularity');
runner.succeed();
}
last = Date.now();
++times;
});
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createTimeUpdateMaxGranularity(0.25);
createTimeUpdateMaxGranularity(0.50);
createTimeUpdateMaxGranularity(1.00);
createTimeUpdateMaxGranularity(1.25);
createTimeUpdateMaxGranularity(1.50);
createTimeUpdateMaxGranularity(2.0);
var createTimeUpdateMinGranularity = function(playbackRate) {
var test = createProgressiveTest('timeupdate', 'minGranularityPlaybackRate' +
parseFloat(playbackRate).toFixed(2));
test.prototype.title = 'Test the time update granularity.';
test.prototype.start = function(runner, video) {
var warmUpCount = 15;
var minGranularity = Infinity;
var times = 0;
var last = 0;
video.addEventListener('loadstart', function() {
video.playbackRate = playbackRate;
video.play();
video.addEventListener('timeupdate', function() {
if (times >= warmUpCount) {
var interval = Date.now() - last;
if (interval > 1 && interval < minGranularity)
minGranularity = interval;
}
if (times === 50 + warmUpCount) {
minGranularity = minGranularity / 1000.0;
runner.checkGE(minGranularity, 0.015, 'minGranularity');
runner.succeed();
}
last = Date.now();
++times;
});
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createTimeUpdateMinGranularity(0.25);
createTimeUpdateMinGranularity(0.50);
createTimeUpdateMinGranularity(1.00);
createTimeUpdateMinGranularity(1.25);
createTimeUpdateMinGranularity(1.50);
createTimeUpdateMinGranularity(2.0);
var createTimeUpdateAccuracy = function() {
var test = createProgressiveTest('timeupdate', 'accuracy');
test.prototype.title = 'Test the time update granularity.';
test.prototype.start = function(runner, video) {
var maxTimeDiff = 0;
var baseTimeDiff = 0;
var times = 0;
video.addEventListener('loadstart', function() {
video.play();
video.addEventListener('timeupdate', function() {
if (times === 0) {
baseTimeDiff = Date.now() / 1000.0 - video.currentTime;
} else {
var timeDiff = Date.now() / 1000.0 - video.currentTime;
maxTimeDiff = Math.max(Math.abs(timeDiff - baseTimeDiff),
maxTimeDiff);
}
if (times > 500 || video.currentTime > 10) {
test.prototype.status = util.Round(maxTimeDiff, 2);
runner.checkLE(maxTimeDiff, 0.25, 'maxTimeDiff');
runner.succeed();
}
++times;
});
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createTimeUpdateAccuracy();
var createTimeUpdateProgressing = function() {
var test = createProgressiveTest('timeupdate', 'progressing');
test.prototype.title = 'Test if the time updates progress.';
test.prototype.start = function(runner, video) {
var last = 0;
var times = 0;
video.addEventListener('timeupdate', function() {
if (times === 0) {
last = video.currentTime;
} else {
runner.checkGE(video.currentTime, last, 'video.currentTime');
last = video.currentTime;
}
if (video.currentTime > 10) {
test.prototype.status = util.Round(video.currentTime, 2);
runner.succeed();
}
++times;
});
video.src = Media.H264.ProgressiveLow.src;
video.play();
};
};
createTimeUpdateProgressing();
var createTimeUpdateProgressingWithInitialSeek = function() {
var test = createProgressiveTest('timeupdate', 'progressing after seek');
test.prototype.title = 'Test if the time updates progress.';
test.prototype.start = function(runner, video) {
var last = 0;
var times = 0;
video.addEventListener('canplay', function() {
if (times == 0) {
video.currentTime = 0.001;
video.play();
video.addEventListener('timeupdate', function() {
if (times === 0) {
last = video.currentTime;
} else {
runner.checkGE(video.currentTime, last, 'video.currentTime');
last = video.currentTime;
}
if (video.currentTime > 10) {
test.prototype.status = util.Round(video.currentTime, 2);
runner.succeed();
}
++times;
});
}
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createTimeUpdateProgressingWithInitialSeek();
var createTimeUpdateProgressingWithDurationCheck = function() {
var test = createProgressiveTest('timeupdate', 'duration on timeupdate');
test.prototype.title = 'Test if the duration is non-negative when time ' +
'updates.';
test.prototype.start = function(runner, video) {
video.addEventListener('timeupdate', function() {
runner.checkGE(video.duration, 0, 'video.duration');
if (video.currentTime > 1) {
runner.succeed();
}
});
video.src = Media.H264.ProgressiveLow.src;
video.play();
};
};
createTimeUpdateProgressingWithDurationCheck();
var createPlaybackRateTest = function(playbackRate) {
var test = createProgressiveTest('playbackRate', 'PlaybackRate' +
parseFloat(playbackRate).toFixed(2));
test.prototype.title = 'Test playbackRate plays back at the expected rate.';
test.prototype.start = function(runner, video) {
video.addEventListener('loadstart', function() {
video.playbackRate = playbackRate;
video.play();
var warmUpCount = 15;
var times = 0;
var realTimeLast;
var playTimeLast;
video.addEventListener('timeupdate', function() {
if (times <= warmUpCount) {
realTimeLast = Date.now();
playTimeLast = video.currentTime;
} else {
var realTimeNext = Date.now();
var playTimeNext = video.currentTime;
var realTimeDelta = (realTimeNext - realTimeLast) / 1000.0;
var playTimeDelta = playTimeNext - playTimeLast;
runner.checkApproxEq(playTimeDelta, realTimeDelta * playbackRate,
'playback time delta', 0.25);
realTimeLast = realTimeNext;
playTimeLast = playTimeNext;
}
if (times === 50 + warmUpCount) {
runner.succeed();
}
times++;
});
});
video.src = Media.H264.ProgressiveLow.src;
};
};
createPlaybackRateTest(0.25);
createPlaybackRateTest(0.50);
createPlaybackRateTest(1.00);
createPlaybackRateTest(1.25);
createPlaybackRateTest(1.50);
createPlaybackRateTest(2.0);
return {tests: tests, info: info, fields: fields, viewType: 'default'};
};