blob: ae622f9b1e71d27e365647de59013585d6df84ad [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
var presentationUrl = "https://example.com";
var presentationUrls = [presentationUrl, "cast://google.com/app_id=deadbeef"];
async_test(function(t) {
Promise.resolve().then(_ => { gc(); });
var request = new PresentationRequest(presentationUrl);
request.getAvailability().then(_ => { t.done(); });
}, "Test that a PresentationRequest is not garbage collected while getAvailability() is pending.");
var testGarbageCollection = function(requestArgument) {
navigator.presentation.defaultRequest = new PresentationRequest(requestArgument);
navigator.presentation.defaultRequest.onconnectionavailable = function() { };
gc();
assert_not_equals(navigator.presentation.defaultRequest.onconnectionavailable, undefined);
};
test(function() {
testGarbageCollection(presentationUrl);
}, "Test that navigator.presentation.defaultRequest.onconnectionavailable with one URL isn't reset after gc().");
test(function() {
testGarbageCollection(presentationUrls);
}, "Test that navigator.presentation.defaultRequest.onconnectionavailable with multiple URLs isn't reset after gc().");
</script>
</body>
</html>