1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/netwerk/test/unit/test_http_headers.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +function check_request_header(chan, name, value) { 1.5 + var chanValue; 1.6 + try { 1.7 + chanValue = chan.getRequestHeader(name); 1.8 + } catch (e) { 1.9 + do_throw("Expected to find header '" + name + "' but didn't find it"); 1.10 + } 1.11 + do_check_eq(chanValue, value); 1.12 +} 1.13 + 1.14 +function run_test() { 1.15 + var ios = Components.classes["@mozilla.org/network/io-service;1"] 1.16 + .getService(Components.interfaces.nsIIOService); 1.17 + var chan = ios.newChannel("http://www.mozilla.org/", null, null) 1.18 + .QueryInterface(Components.interfaces.nsIHttpChannel); 1.19 + 1.20 + check_request_header(chan, "host", "www.mozilla.org"); 1.21 + check_request_header(chan, "Host", "www.mozilla.org"); 1.22 + 1.23 + chan.setRequestHeader("foopy", "bar", false); 1.24 + check_request_header(chan, "foopy", "bar"); 1.25 + 1.26 + chan.setRequestHeader("foopy", "baz", true); 1.27 + check_request_header(chan, "foopy", "bar, baz"); 1.28 + 1.29 + for (var i = 0; i < 100; ++i) 1.30 + chan.setRequestHeader("foopy" + i, i, false); 1.31 + 1.32 + for (var i = 0; i < 100; ++i) 1.33 + check_request_header(chan, "foopy" + i, i); 1.34 + 1.35 + var x = false; 1.36 + try { 1.37 + chan.setRequestHeader("foo:py", "baz", false); 1.38 + } catch (e) { 1.39 + x = true; 1.40 + } 1.41 + if (!x) 1.42 + do_throw("header with colon not rejected"); 1.43 + 1.44 + x = false; 1.45 + try { 1.46 + chan.setRequestHeader("foopy", "b\naz", false); 1.47 + } catch (e) { 1.48 + x = true; 1.49 + } 1.50 + if (!x) 1.51 + do_throw("header value with newline not rejected"); 1.52 + 1.53 + x = false; 1.54 + try { 1.55 + chan.setRequestHeader("foopy\u0080", "baz", false); 1.56 + } catch (e) { 1.57 + x = true; 1.58 + } 1.59 + if (!x) 1.60 + do_throw("header name with non-ASCII not rejected"); 1.61 + 1.62 + x = false; 1.63 + try { 1.64 + chan.setRequestHeader("foopy", "b\u0000az", false); 1.65 + } catch (e) { 1.66 + x = true; 1.67 + } 1.68 + if (!x) 1.69 + do_throw("header value with null-byte not rejected"); 1.70 +}