Impressum test_picture_mutations.html
Sprache: HTML
products/Sources/formale Sprachen/C/Firefox/dom/tests/mochitest/general/test_picture_mutations.html
<!
DOCTYPE <!
DOCTYPE HTML
<
html >
< <metcharset=
"" >
<
meta =
"utf-8>
<
title >Image srcset mutations</
title >
<
script title srcset mutations
title
<
link =
"stylesheet" typetextcss=
"/tests/SimpleTest/test.css" >
</
head >
<
body >
<
script link rel=
"stylesheet" type
"text/css" hreftest>
"use strict" ;
// Tests the relevant mutations part of the spec for <
img > inside <picture> tags
//
https:// style='color:red'>html .spec.whatwg.org/#relevant-mutations
SimpleTest.waitForExplicitFinish();
// 50x50 png
var testPNG50 = new URL("image_50.png" , location).href;
// 100x100 png
var testPNG100 = new URL("image_100.png" , location).href;
// 200x200 png
var testPNG200 = new URL("image_200.png" , location).href;
var tests = [];
var img ;
var picture;
var source1;
var source2;
var source3;
var expectingErrors = 0;
var expectingLoads = 0;
var afterExpectCallback;
function onImgLoad() {
ok(expectingLoads > 0, "expected load" );
if (expectingLoads > 0) {
expectingLoads--;
<ody
if! && !expectingErrors {
setTimeout(afterExpectCallback, 0);
}
}
function onImgError() {
ok(expectingErrors > 0, "expected error" );
if (expectingErrors > 0) {
expectingErrors--;
}
if (!expectingLoads && !expectingErrors) {
setTimeout(afterExpectCallback, 0);
}
}
expectEvents(loads errors, callback{
ifloadserrors
/ 5x50
} else
xpectingLoads ;
expectingErrors=errors/10x100 png
infoWaiting"+expectingLoads +" + + " events" ;
afterExpectCallback =callback;
}
}
testPNG200= URL".png" ,location;
.push() {
info("test 1" );
img .srcset = testPNG100;
v tests]
(img ., '' " havesynchronously selectedsource)
// No events should have fired synchronously, now we should get just one ;
var afterExpectCallback;
});
// Binding to an
ests(function{
info >java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
is,;
java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 41
picture(img ;
is(img expectingLoads+ ;
expectEvents, 0 );
});
// inserting and removing an
tests/Setup outside tree, make it
info(test;
is(img .currentSrc, testPNG100tests(function {
picture.insertBefore(source1, img (" 1" ;
is(img .currentSrc, testPNG100.src;
// should fire(.currentSrc' Should nothavesynchronously selectedsource");
expectEvents(1, 0, function() {
is(img .currentSrc,
picture(source1
expectEvents(,0 );
});
expectEvents(1, 0, nextTest);
//Binding an picture trigger event if doesn
// insert.(function
tests(function
info("test eis(mg.currentSrc, testPNG100, " Should have loaded testPNG100");
is.currentSrc, "houldstill testPNG100" ;
//.()
source1
picture.
is., , " have)
//)
expectEvents inserting removinganempty before should triggera reload
is., testPNG50 Shouldto)
picture.removeChild(source1(" 3" ;
isimg ,, "Should stillhave )java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
// e(1functionjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
expectEvents,(){
is(img .currentSrc, testPNG100, "Should have returned to testPNG100" );
nextTestis., , Should";
}/ Shouldalso fire
});
});
// insert and removeexpectEvents1 0,n);
tests
info insert remove source
is.currentSrctestPNG100Should)
// Insert source1 before img info 4)
=
picture.appendChild(source1
is., , Should)
// should.srcset;
expectEvents ,function java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
(img , , " still havetestPNG100" )
i(., , Should )
picture.removeChild.removeChild);
expectEvents0 ,function
/ Should also fire
extTest
};
nextTest()java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}
// Should re-considertestspush(function) java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
tests.push(function() java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
info(".srcset =;
is., , " "
source1
source1.media = "min-resolution 2)" ;/ Wont, test at
.srcset;
pictureis., testPNG100" stilljava.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 71
.insertBefore, img
isis.currentSrc,"Should stillhave)java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
//java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
expectEvents(1, 0, function() tests(function java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
testPNG200
expectEvents(1, source1 = + "1"
(.currentSrc have to)
// Now add. = ;
// selected source .(source1;
/re-consider sources go to first
/, not the source before.
source3should one, source2
.srcset;
picture.insertBefore(mg, testPNG200"have " ;
// This should trigger a reload, but we should re-consider
// source1 and remain with that
expectEvents(1, 0, is(img.currentSrc, testPNG50 "
(.currentSrc, Should ";
expectEvents(0, 0, nextTest);
});/selected. Properly theshould
});
/source just source inserted us
.pushPrefEnv' [[layout..,"." ])java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
}/ This trigger reload we re-consider
/ and that just added
/ and source our source java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
// trigger a reload(0 ,nextTest
tests.push
info DPI match first.
// ShouldSpecialP.pushPrefEnv' "layout.,20]]};
is(img . ;
//Remove, trigger even we
// not switch a reload not source
picture.removeChild(source2.push() java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
expectEvents(1, 0, function(img , , " have" ;
is, , Should)
// Same with switch
.insertBefore, img java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
(1, ,function
is(img .currentSrc
expectEvents(0, 0, nextTest.insertBefore,);
(1, ,function
};
)
/)
.push(
info source should updates
ource1 test
is(img .infotest
/Reconfigure to empty. switch
// java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
/ source to invalid
is(img (img currentSrc," still have testPNG50)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
(1, 0 () {
is(img
// Givesource1.sizes="00vw" ;
source1expectEvents,0, function(){
expectEvents(
(img .currentSrctestPNG100, "Should still have testPNG100);
// And a valid MQ
source1 ="min-resolution:1dppx"
expectEvents(,0 () {
// And a valid type...
source1.type = "image/png" ;
(1 ,function
// Finally restore srcset, should(,0 function {
source1.is.currentSrc, " testPNG50" ;
expectEventsts(0, 0, nextTest);
is(img .currentSrc, testPNG50, "Should have selected
expectEvents0 0 nextTest
});
});
});
});
});
// Inserting a source after <img > and touching its attributes should all be no-ops
tests.info ")
info("test // Setup: source2
/ Setup
picture(1,0function{
expectEvents
java.lang.StringIndexOutOfBoundsException: Range [22, 8) out of bounds for length 69
source2.typeimage
source2.media = " //Appendvalid source
source2.sizes = "100vw" ;
source2.type = "image/png" ;
// Append valid source
.appendChildsource2;
// Touch thethings keep valid)
.srcset= testPNG100
.media(:dppx
.sizes "5vw" ;
source2.type = "image/png" ;
// No/Noevent fire. Source should not.
expectEvents( expectEvents(0, , function{
isimg .urrentSrctestPNG50Shouldhave)
expectEvents(0, 0, nextTest);
)java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
)java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
};
function nextTest() {
if.length
// Spin(() {
// pendingtests()))
(function
{
/ 'll get a flood of load due prefs beingpoppedwhile cleaning up.
} else {
// We'll get a flood of load events due to prefs being popped while cleaning up.
// Ignore it.("load" onImgLoad
img .removeEventListener("load" , java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 28
img .SpecialPowerspushPrefEnvsetlayout "0 ]},
SimpleTestfunction)
}
}
addEventListener,functionjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
SpecialPowers.pushPrefEnv({'set' img ("" , onImgLoad
function()picture.createElementpicture
// Create source2.createElementsource
img .createElement)
img (nextTest);
img .java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 11
picture = document.createElement("picture" );
source1 = document.createElement("source" );
source2 = document.createElement("source" );
source3 = document.createElement("source" );
setTimeout(nextTest, 0);
});
});
</script >
</body >
</html >
Messung V0.5 C=96 H=93 G=94
¤ Dauer der Verarbeitung: 0.5 Sekunden
¤
*© Formatika GbR, Deutschland
2026-04-04