From 238d54c67c2cfab26fb53de3d29eece3911af6f4 Mon Sep 17 00:00:00 2001 From: Matt Revelle Date: Tue, 1 Feb 2011 01:22:06 -0800 Subject: [PATCH] Added tests for signing of Unicode characters. --- test/oauth/signature_test.clj | 44 ++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/test/oauth/signature_test.clj b/test/oauth/signature_test.clj index fd8b896..003d4e4 100644 --- a/test/oauth/signature_test.clj +++ b/test/oauth/signature_test.clj @@ -61,11 +61,34 @@ :oauth_timestamp "1272323047" :oauth_verifier "pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY" :oauth_version "1.0"}) - "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Faccess_token&oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3D9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272323047%26oauth_token%3D8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc%26oauth_verifier%3DpDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY%26oauth_version%3D1.0"))) + "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Faccess_token&oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3D9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272323047%26oauth_token%3D8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc%26oauth_verifier%3DpDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY%26oauth_version%3D1.0")) + + (is (= (sig/base-string "POST" + "http://api.twitter.com/1/statuses/update.json" + {:oauth_consumer_key "GDdmIQH6jhtmLUypg82g" + :oauth_nonce "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" + :oauth_signature_method "HMAC-SHA1" + :oauth_timestamp "1272325550" + :oauth_version "1.0" + :oauth_token "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" + :status "setting up my twitter 私のさえずりを設定する"}) + "POST&http%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3DoElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272325550%26oauth_token%3D819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw%26oauth_version%3D1.0%26status%3Dsetting%2520up%2520my%2520twitter%2520%25E7%25A7%2581%25E3%2581%25AE%25E3%2581%2595%25E3%2581%2588%25E3%2581%259A%25E3%2582%258A%25E3%2582%2592%25E8%25A8%25AD%25E5%25AE%259A%25E3%2581%2599%25E3%2582%258B")) + + (is (= (sig/base-string "POST" + "http://api.twitter.com/1/statuses/update.json" + {:key "GDdmIQH6jhtmLUypg82g" + :signature-method :hmac-sha1} + {:token "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw"} + {:oauth_nonce "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" + :oauth_timestamp "1272325550" + :oauth_version "1.0" + :status "setting up my twitter 私のさえずりを設定する"}) + "POST&http%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3DoElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272325550%26oauth_token%3D819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw%26oauth_version%3D1.0%26status%3Dsetting%2520up%2520my%2520twitter%2520%25E7%25A7%2581%25E3%2581%25AE%25E3%2581%2595%25E3%2581%2588%25E3%2581%259A%25E3%2582%258A%25E3%2582%2592%25E8%25A8%25AD%25E5%25AE%259A%25E3%2581%2599%25E3%2582%258B"))) (deftest #^{:doc "Test hmac-sha1 signing of a request."} hmac-sha1-signature + (is (= (sig/sign {:key "dpf43f3p2l4k3l03" :secret "kd94hf93k423kf44" :signature-method :hmac-sha1} @@ -94,6 +117,7 @@ :oauth_timestamp "1272323042" :oauth_version "1.0"})) "8wUi7m5HFQy76nowoCThusfgB+Q=")) + (is (= (sig/sign {:signature-method :hmac-sha1 :secret "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98"} (sig/base-string "POST" @@ -106,12 +130,26 @@ :oauth_verifier "pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY" :oauth_version "1.0"}) "x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA") - "PUw/dHA4fnlJYM6RhXk5IU/0fCc="))) + "PUw/dHA4fnlJYM6RhXk5IU/0fCc=")) + + (is (= (sig/sign {:signature-method :hmac-sha1 + :secret "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98"} + (sig/base-string "POST" + "http://api.twitter.com/1/statuses/update.json" + {:oauth_consumer_key "GDdmIQH6jhtmLUypg82g" + :oauth_nonce "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y" + :oauth_signature_method "HMAC-SHA1" + :oauth_timestamp "1272325550" + :oauth_token "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw" + :oauth_version "1.0" + :status "setting up my twitter 私のさえずりを設定する"}) + "J6zix3FfA9LofH0awS24M3HcBYXO5nI1iYe8EfBA") + "yOahq5m0YjDDjfjxHaXEsW9D+X0="))) (deftest #^{:doc "test plaintext signatures"} plaintext-signature - (let [c { :key "dpf43f3p2l4k3l03" + (let [c {:key "dpf43f3p2l4k3l03" :secret "kd94hf93k423kf44" :signature-method :plaintext}] (is (= "kd94hf93k423kf44&" (sig/sign c