This page tests loading image with empty src attribute.

[0] remove src attribute of an <img> to see whether it gets loaded. (It should NOT be loaded.)
PASS
[1] define an <img> with no src specified to see whether it gets loaded. (It should NOT be loaded.)
PASS
[2] define a <img> with src='' to see whether it gets loaded. (It should NOT be loaded, because the base URI is a local file.)
PASS
[3] change the base URI to an http: URL and define a <img> with src='' to see whether it gets loaded. (It should NOT be loaded.)
PASS
