Revision ac4966fa4dcda8e22ade19e03ed6690de7b9cece authored by Henrik Boström on 28 March 2018, 15:48:04 UTC, committed by Chromium WPT Sync on 28 March 2018, 15:48:04 UTC
This exposes RTCRtpSender.getStats() in JavaScript (behind flag) which implements the stats selection algorithm[1] for senders. [1] https://w3c.github.io/webrtc-pc/#dfn-stats-selection-algorithm Bug: 680172 Change-Id: I8117c87f475d1c78fa3301fc2d821f0c3a21281f Reviewed-on: https://chromium-review.googlesource.com/975306 Commit-Queue: Henrik Boström <hbos@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Reviewed-by: Harald Alvestrand <hta@chromium.org> Reviewed-by: Taylor Brandstetter <deadbeef@chromium.org> Cr-Commit-Position: refs/heads/master@{#546493}
1 parent f9c1a50
idbkeyrange.htm
<!DOCTYPE html>
<meta charset=utf-8>
<title>IDBKeyRange Tests</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=support.js></script>
<script>
// only
test( function() {
var keyRange = IDBKeyRange.only(1);
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, 1, "keyRange");
assert_equals(keyRange.upper, 1, "keyRange");
assert_false(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_false(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.only() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
assert_throws('DataError', function() { IDBKeyRange.only(undefined); }, 'undefined is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(null); }, 'null is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only({}); }, 'Object is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(Symbol()); }, 'Symbol is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(true); }, 'boolean is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.only(() => {}); }, 'function is not a valid key');
}, "IDBKeyRange.only() - throws on invalid keys");
// lowerBound
test( function() {
var keyRange = IDBKeyRange.lowerBound(1, true)
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, 1, "keyRange.lower");
assert_equals(keyRange.upper, undefined, "keyRange.upper");
assert_true(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_true(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.lowerBound() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
var keyRange = IDBKeyRange.lowerBound(1);
assert_false(keyRange.lowerOpen, "keyRange.lowerOpen");
}, "IDBKeyRange.lowerBound() - 'open' parameter has correct default set");
test( function() {
assert_throws('DataError', function() { IDBKeyRange.lowerBound(undefined); }, 'undefined is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(null); }, 'null is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound({}); }, 'Object is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(Symbol()); }, 'Symbol is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(true); }, 'boolean is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.lowerBound(() => {}); }, 'function is not a valid key');
}, "IDBKeyRange.lowerBound() - throws on invalid keys");
// upperBound
test( function() {
var keyRange = IDBKeyRange.upperBound(1, true);
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, undefined, "keyRange.lower");
assert_equals(keyRange.upper, 1, "keyRange.upper");
assert_true(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_true(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.upperBound() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
var keyRange = IDBKeyRange.upperBound(1);
assert_false(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.upperBound() - 'open' parameter has correct default set");
test( function() {
assert_throws('DataError', function() { IDBKeyRange.upperBound(undefined); }, 'undefined is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(null); }, 'null is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound({}); }, 'Object is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(Symbol()); }, 'Symbol is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(true); }, 'boolean is not a valid key');
assert_throws('DataError', function() { IDBKeyRange.upperBound(() => {}); }, 'function is not a valid key');
}, "IDBKeyRange.upperBound() - throws on invalid keys");
// bound
test( function() {
var keyRange = IDBKeyRange.bound(1, 2, true, true);
assert_true(keyRange instanceof IDBKeyRange, "keyRange instanceof IDBKeyRange");
assert_equals(keyRange.lower, 1, "keyRange");
assert_equals(keyRange.upper, 2, "keyRange");
assert_true(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_true(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.bound() - returns an IDBKeyRange and the properties are set correctly");
test( function() {
var keyRange = IDBKeyRange.bound(1, 2);
assert_false(keyRange.lowerOpen, "keyRange.lowerOpen");
assert_false(keyRange.upperOpen, "keyRange.upperOpen");
}, "IDBKeyRange.bound() - 'lowerOpen' and 'upperOpen' parameters have correct defaults set");
</script>
<div id=log></div>
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...