tests/soup.js
[gitlive] / tests / soup.js
1 #!/usr/bin/env seed
2
3 Soup = imports.gi.Soup;
4 Netrc = imports['../Netrc.js'].Netrc;
5
6 GLib = imports.gi.GLib;
7
8 var session = new Soup.SessionSync();
9 File  = imports['../File.js'].File;
10
11  
12 // Soup.URI is a struct.
13 var uri = new Soup.URI.c_new("http://www.roojs.com/admin.php/Roo/Events");
14 //var uri = new Soup.URI.c_new("http://www.roojs.com/head.php");
15
16 var msg = new Soup.Message({method:"POST", uri:uri});
17 //var msg = new Soup.Message({method:"GET", uri:uri});
18
19 // post..
20 buftxt =  "remarks=test";
21  
22 msg.set_request('application/x-www-form-urlencoded', Soup.MemoryUse.COPY, buftxt, buftxt.length)
23
24
25 var auth = new Soup.Auth.c_new(Soup.AuthBasic.type, msg, "Basic realm=\"Test\"");
26  
27 var authvals = Netrc.forHost('git.roojs.com');
28
29 auth.authenticate(authvals.login ,authvals.password);
30 var authmsg = auth.get_authorization(msg);
31 //print(authmsg);
32 msg.request_headers.append('Authorization', authmsg)
33
34 //request.headers_append...
35 var status = session.send_message(msg);
36 // session.queue_message(function(ses, msg) {
37 //
38 //}
39 //)
40 print(status);
41
42 print(msg.response_body.data);
43
44
45 function XMLHttpRequest() {
46     
47     
48 }
49
50 XObject.extend(XMLHttpRequest,{ 
51     // event handlers
52     //onreadystatechange;
53     //onloadstart;
54     //onprogress;
55     //onabort;
56     //onerror;
57     //onload;
58     //ontimeout;
59     //onloadend;
60     
61     timeout : 0,
62     withCredentials : false,
63     
64     // states
65     UNSENT : 0,
66     OPENED : 1,
67     HEADERS_RECEIVED : 2,
68     LOADING : 3,
69     DONE : 4,
70     
71     // readonly..
72     readyState : 0,
73     upload: null,
74     
75     
76     _message : false,
77     _session : false,
78     _async   : false,
79     
80     // request
81     open : function ( method,  url, async, user, password)
82     {
83         async = async || false;
84         user = user || false;
85         password = password || false;
86         
87         this._session = async ?  new Soup.SessionAsync() : new Soup.SessionSync();
88
89         var uri = new Soup.URI.c_new(url);
90         this._message = new Soup.Message({method: method, uri:uri});
91         this._async = async;
92
93         
94     },
95     
96     setRequestHeader : function ( header,  value)
97     {
98         _this.message.request_headers.append(headers, value)
99
100     },
101     overrideMimeType : function ( mime)
102     {
103         
104     },
105     send  : function(data)
106     {
107         this._message.set_request('application/x-www-form-urlencoded', Soup.MemoryUse.COPY, data, data.length)
108         
109         if (this._async) {
110             this._session.queue_message(this._message, function() {
111                 // got some data... fire some evetns.
112             })
113             
114         }
115         var status = this._session.send_message(this._message);
116         this.responseText = msg.response_body.data;
117         this.status = 4;
118         return status;
119
120     },
121     abort : function()
122     {
123         
124     },
125     
126     // response (all readonly...)
127     status : false,
128     statusText : false,
129     //readonly attribute any response
130     responseText : false,
131     responseXML : false,
132     responseType : false, 
133     
134     // response - read
135     getResponseHeader : function(  header)
136     {
137         
138     },
139     getAllResponseHeaders : function ()
140     {
141         
142     }
143    
144     
145 });