This test is to see if a remote file can include a local image. 
Currently this test cannot be run manually on Windows because we do not have a function like pathToLocalResource() outside of DRT. 

Test Failed: Image Load Error.


