mirror of
https://github.com/classilla/tenfourfox.git
synced 2025-01-07 16:30:36 +00:00
92 lines
3.1 KiB
HTML
92 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset=utf-8>
|
|
<title>CORS - simple requests</title>
|
|
<meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com">
|
|
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=support.js?pipe=sub></script>
|
|
<script src=/common/utils.js></script>
|
|
|
|
<h1>Simple requests</h1>
|
|
<p>Simple requests shouldn't trigger preflight</p>
|
|
|
|
<div id=log></div>
|
|
<script>
|
|
|
|
var test_c = 0;
|
|
|
|
function check_simple(method, headers)
|
|
{
|
|
test(function() {
|
|
var client = new XMLHttpRequest()
|
|
var uuid_token = token();
|
|
client.open(method, CROSSDOMAIN + 'resources/preflight.py?token='
|
|
+ uuid_token, false)
|
|
for (head in headers)
|
|
client.setRequestHeader(head, headers[head])
|
|
client.send("data")
|
|
assert_equals(client.getResponseHeader('content-type'), "text/plain")
|
|
if (method == 'HEAD')
|
|
assert_equals(client.response, '', 'response')
|
|
else
|
|
assert_equals(client.response, 'NO', 'response')
|
|
|
|
client.open('GET', 'resources/preflight.py?check&token='
|
|
+ uuid_token, false)
|
|
client.send("data")
|
|
assert_equals(client.response, "0", "Found preflight log")
|
|
},
|
|
'No preflight ' + method + ' and ' + JSON.stringify(headers))
|
|
}
|
|
|
|
function check_simple_headers(headers) {
|
|
check_simple('GET', headers)
|
|
check_simple('HEAD', headers)
|
|
check_simple('POST', headers)
|
|
}
|
|
|
|
check_simple_headers({'Accept': 'test'})
|
|
check_simple_headers({'accept-language': 'test'})
|
|
check_simple_headers({'CONTENT-language': 'test'})
|
|
|
|
check_simple_headers({'Content-Type': 'application/x-www-form-urlencoded'})
|
|
check_simple_headers({'content-type': 'multipart/form-data'})
|
|
check_simple_headers({'content-type': 'text/plain'})
|
|
|
|
check_simple_headers({
|
|
'accept': 'test',
|
|
'accept-language': 'test',
|
|
'content-language': 'test',
|
|
'content-type': 'text/plain; parameter=whatever'
|
|
})
|
|
|
|
check_simple('Get', {'content-type': 'text/plain; parameter=extra_bonus'})
|
|
check_simple('post', {'content-type': 'text/plain'})
|
|
|
|
|
|
/* Extra async test */
|
|
|
|
var simple_async = async_test("Check simple headers (async)")
|
|
simple_async.step(function (){
|
|
var time = new Date().getTime(),
|
|
client = new XMLHttpRequest()
|
|
var uuid_token = token();
|
|
client.open('POST', CROSSDOMAIN + 'resources/preflight.py?token='
|
|
+ uuid_token, true)
|
|
|
|
client.setRequestHeader('Accept', 'jewelry')
|
|
client.setRequestHeader('accept-language', 'nn_NO,nn,en')
|
|
client.setRequestHeader('content-type', 'text/plain; parameter=extra')
|
|
client.setRequestHeader('content-Language', 'nn_NO')
|
|
|
|
client.onload = simple_async.step_func(function() {
|
|
assert_equals(client.getResponseHeader('content-type'), "text/plain", 'content-type response header')
|
|
assert_equals(client.response, 'NO', 'response')
|
|
simple_async.done()
|
|
})
|
|
client.onerror = simple_async.step_func(function () { assert_unreached('onerror') })
|
|
client.send()
|
|
})
|
|
</script>
|