From: <Saved by UnMHT>
Subject: =?iso-2022-jp?B??=
Date: Wed, May 18 2011 15:21:05 GMT-0700
MIME-Version: 1.0
Content-Type: multipart/related;
	boundary="----=_NextPart_000_0000_C2ECC76E.5EC79255";
	type="text/html"

------=_NextPart_000_0000_C2ECC76E.5EC79255
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://localhost/page_with_css_and_js.html

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; charset=
=3Diso-8859-1">


  <link type=3D"text/css" rel=3D"stylesheet" href=3D"resources/hide_image.c=
ss"></link>
  =20
  <script src=3D"resources/remove_image_script.js" type=3D"text/javascript"=
></script>
  <script>
    if (window.testRunner)
      testRunner.waitUntilDone();
  </script>
<base href=3D"http://localhost/"></base></head><body onload=3D"onLoad()">
This page tests that CSS and JavaScript resources are retrieved correctly=
 for MHTML files.<br><br>
There should be only one red square below:
<div id=3D"firstDiv">
<img src=3D"resources/red_square.png"><br><br>
</div>
<div id=3D"secondDiv">
The red square below should be hidden by way of CSS.<br>
<img src=3D"resources/red_square.png"><br><br>
</div>
<div id=3D"thirdDiv">
The red square below should be hidden by way of JavaScript.<br>
<img src=3D"resources/red_square.png"><br><br>
</div>

 =20
</body></html>
------=_NextPart_000_0000_C2ECC76E.5EC79255
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: http://localhost/resources/hide_image.css

#secondDiv { display: none; }

------=_NextPart_000_0000_C2ECC76E.5EC79255
Content-Type: text/javascript
Content-Transfer-Encoding: quoted-printable
Content-Location: http://localhost/resources/remove_image_script.js

function onLoad() {
    divToRemove =3D document.getElementById("thirdDiv");
    divToRemove.parentNode.removeChild(divToRemove);
    if (window.testRunner)
      testRunner.notifyDone();
}
------=_NextPart_000_0000_C2ECC76E.5EC79255
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://localhost/resources/red_square.png

iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAACESURBVEhL7ZYxDoAwCEXB2LGTo46ewXj/zXgV
PQKgexP/Ai6l889/6Stp4HtZjYKOiRCpEpfSEIYgJqxNMFTkFUjVXiZhT6qGirwCqdrLJOxJ1VCR
V6A/1XxNc9jqQ6JkpjTU2rwQR+5c4769YCM5zn/BX4PY33Dljb0+JtiTqqEir8ADWEIY6dz7d1cA
AAAASUVORK5CYII=
------=_NextPart_000_0000_C2ECC76E.5EC79255--
