<html>
<head>
<title>Tests for Bug 30079</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>

<body>
<p>Tests for 
<ul>    
<li><p><a href="https://bugs.webkit.org/show_bug.cgi?id=30079">Bug 30079: unselectable resources in resource panel</a>
</ul>

<p>To test, open the Inspector on this page, go to the Resources panel.

<p>First off, you should be able to actually select each "abc" resource to see
the HTTP info / content.  Bug 30079 didn't allow you to select all of these.
    
<p>For each of the "abc" resources open the <b>HTTP Information</b> and 
<b>Request Payload</b> tree elements above the content.  One of the resources 
will not have a <b>Request Payload</b>.

<p>There should be one each of the following resources:
    
<ul>
<li><p>One with a Request Method: GET and no Request Payload
<li><p>One with a Request Method: POST and Request Payload of "123"
<li><p>One with a Request Method: POST and Request Payload of "456"
</ul>

<p>Another change made by this bug was to change the way the drag/drop of
the resource itself worked.  The previous method of handling drag/drop of
the resource was actually causing the unselectability.  So the drag/drop
of the resources needs to be tested as well.

<ul>
<li><p>Select one of the resources.
<li><p>Drag it to an application that can accept text or a link
<li><p>The application should provide some feedback indicating it will accept
the drop, but may not
<li>Drop, and the URL for the resource should be rendered appropriately.
    
<script>

var xhr;

xhr = new XMLHttpRequest();
xhr.open("POST", "http://example.org/abc");
xhr.send("123");

xhr = new XMLHttpRequest();
xhr.open("POST", "http://example.org/abc");
xhr.send("456");

xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.org/abc");
xhr.send();

</script>

</body>
</html>
