source: Dev/trunk/src/node_modules/request/tests/test-oauth.js @ 484

Last change on this file since 484 was 484, checked in by hendrikvanantwerpen, 11 years ago

Commit node_modules, to make checkouts and builds more deterministic.

File size: 4.1 KB
Line 
1var hmacsign = require('oauth-sign').hmacsign
2  , assert = require('assert')
3  , qs = require('querystring')
4  , request = require('../index')
5  ;
6
7function getsignature (r) {
8  var sign
9  r.headers.Authorization.slice('OAuth '.length).replace(/,\ /g, ',').split(',').forEach(function (v) {
10    if (v.slice(0, 'oauth_signature="'.length) === 'oauth_signature="') sign = v.slice('oauth_signature="'.length, -1)
11  })
12  return decodeURIComponent(sign)
13}
14
15// Tests from Twitter documentation https://dev.twitter.com/docs/auth/oauth
16
17var reqsign = hmacsign('POST', 'https://api.twitter.com/oauth/request_token',
18  { oauth_callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11'
19  , oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g'
20  , oauth_nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk'
21  , oauth_signature_method: 'HMAC-SHA1'
22  , oauth_timestamp: '1272323042'
23  , oauth_version: '1.0'
24  }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98")
25
26console.log(reqsign)
27console.log('8wUi7m5HFQy76nowoCThusfgB+Q=')
28assert.equal(reqsign, '8wUi7m5HFQy76nowoCThusfgB+Q=')
29
30var accsign = hmacsign('POST', 'https://api.twitter.com/oauth/access_token',
31  { oauth_consumer_key: 'GDdmIQH6jhtmLUypg82g'
32  , oauth_nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8'
33  , oauth_signature_method: 'HMAC-SHA1'
34  , oauth_token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc'
35  , oauth_timestamp: '1272323047'
36  , oauth_verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY'
37  , oauth_version: '1.0'
38  }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA")
39 
40console.log(accsign)
41console.log('PUw/dHA4fnlJYM6RhXk5IU/0fCc=')
42assert.equal(accsign, 'PUw/dHA4fnlJYM6RhXk5IU/0fCc=')
43
44var upsign = hmacsign('POST', 'http://api.twitter.com/1/statuses/update.json',
45  { oauth_consumer_key: "GDdmIQH6jhtmLUypg82g"
46  , oauth_nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y"
47  , oauth_signature_method: "HMAC-SHA1"
48  , oauth_token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw"
49  , oauth_timestamp: "1272325550"
50  , oauth_version: "1.0"
51  , status: 'setting up my twitter 私のさえずりを蚭定する'
52  }, "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98", "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA")
53
54console.log(upsign)
55console.log('yOahq5m0YjDDjfjxHaXEsW9D+X0=')
56assert.equal(upsign, 'yOahq5m0YjDDjfjxHaXEsW9D+X0=')
57
58
59var rsign = request.post(
60  { url: 'https://api.twitter.com/oauth/request_token'
61  , oauth:
62    { callback: 'http://localhost:3005/the_dance/process_callback?service_provider_id=11'
63    , consumer_key: 'GDdmIQH6jhtmLUypg82g'
64    , nonce: 'QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk'
65    , timestamp: '1272323042'
66    , version: '1.0'
67    , consumer_secret: "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98"
68    }
69  })
70
71setTimeout(function () {
72  console.log(getsignature(rsign))
73  assert.equal(reqsign, getsignature(rsign))
74})
75
76var raccsign = request.post(
77  { url: 'https://api.twitter.com/oauth/access_token'
78  , oauth: 
79    { consumer_key: 'GDdmIQH6jhtmLUypg82g'
80    , nonce: '9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8'
81    , signature_method: 'HMAC-SHA1'
82    , token: '8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc'
83    , timestamp: '1272323047'
84    , verifier: 'pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY'
85    , version: '1.0'
86    , consumer_secret: "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98"
87    , token_secret: "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA"
88    }
89  })
90
91setTimeout(function () {
92  console.log(getsignature(raccsign))
93  assert.equal(accsign, getsignature(raccsign))
94}, 1)
95
96var rupsign = request.post(
97  { url: 'http://api.twitter.com/1/statuses/update.json'
98  , oauth:
99    { consumer_key: "GDdmIQH6jhtmLUypg82g"
100    , nonce: "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y"
101    , signature_method: "HMAC-SHA1"
102    , token: "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw"
103    , timestamp: "1272325550"
104    , version: "1.0"
105    , consumer_secret: "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98"
106    , token_secret: "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA"
107    }
108  , form: {status: 'setting up my twitter 私のさえずりを蚭定する'}
109  })
110setTimeout(function () {
111  console.log(getsignature(rupsign))
112  assert.equal(upsign, getsignature(rupsign))
113}, 1)
114
115
116
117
Note: See TracBrowser for help on using the repository browser.