Bug 458256. Use LoadLibraryW instead of LoadLibrary (patch by DougT). r+sr=vlad
[wine-gecko.git] / netwerk / test / unit / test_cookie_header.js
bloba5a880a89488865440d09862f2f271539e3315a3
1 // This file tests bug 250375
3 do_import_script("netwerk/test/httpserver/httpd.js");
5 function check_request_header(chan, name, value) {
6 var chanValue;
7 try {
8 chanValue = chan.getRequestHeader(name);
9 } catch (e) {
10 do_throw("Expected to find header '" + name + "' but didn't find it");
12 dump("Value for header '" + name + "' is '" + chanValue + "'\n");
13 do_check_eq(chanValue, value);
16 var cookieVal = "C1=V1";
18 var listener = {
19 onStartRequest: function test_onStartR(request, ctx) {
20 try {
21 var chan = request.QueryInterface(Components.interfaces.nsIChannel);
22 check_request_header(chan, "Cookie", cookieVal);
23 } catch (e) {
24 do_throw("Unexpected exception: " + e);
27 throw Components.results.NS_ERROR_ABORT;
30 onDataAvailable: function test_ODA() {
31 throw Components.results.NS_ERROR_UNEXPECTED;
34 onStopRequest: function test_onStopR(request, ctx, status) {
35 if (this._iteration == 1)
36 run_test_continued();
37 else
38 httpserv.stop();
39 do_test_finished();
42 _iteration: 1
45 function makeChan() {
46 var ios = Components.classes["@mozilla.org/network/io-service;1"]
47 .getService(Components.interfaces.nsIIOService);
48 var chan = ios.newChannel("http://localhost:4444/", null, null)
49 .QueryInterface(Components.interfaces.nsIHttpChannel);
51 return chan;
54 var httpserv = null;
56 function run_test() {
57 httpserv = new nsHttpServer();
58 httpserv.start(4444);
60 var chan = makeChan();
62 chan.setRequestHeader("Cookie", cookieVal, false);
64 chan.asyncOpen(listener, null);
66 do_test_pending();
69 function run_test_continued() {
70 var chan = makeChan();
72 var cookServ = Components.classes["@mozilla.org/cookieService;1"]
73 .getService(Components.interfaces.nsICookieService);
74 var cookie2 = "C2=V2";
75 cookServ.setCookieString(chan.URI, null, cookie2, chan);
76 chan.setRequestHeader("Cookie", cookieVal, false);
78 // We expect that the setRequestHeader overrides the
79 // automatically-added one, so insert cookie2 in front
80 cookieVal = cookie2 + "; " + cookieVal;
82 listener._iteration++;
83 chan.asyncOpen(listener, null);
85 do_test_pending();