Files

40 lines
1.2 KiB
Go

package usos
import (
"net/url"
"testing"
)
func TestSignatureMatchesPublishedVector(t *testing.T) {
params := url.Values{
"include_entities": {"true"},
"status": {"Hello Ladies + Gentlemen, a signed OAuth request!"},
"oauth_consumer_key": {"xvz1evFS4wEEPTGEFPHBog"},
"oauth_nonce": {"kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg"},
"oauth_signature_method": {"HMAC-SHA1"},
"oauth_timestamp": {"1318622958"},
"oauth_token": {"370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb"},
"oauth_version": {"1.0"},
}
got := signature(
"POST", "https://api.twitter.com/1.1/statuses/update.json", params,
"kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw", "LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE",
)
if want := "hCtSmYh+iHYCEqBWrE7C7hYmtUk="; got != want {
t.Fatalf("signature = %q, want %q", got, want)
}
}
func TestPercentEncode(t *testing.T) {
cases := map[string]string{
"studies|offline_access": "studies%7Coffline_access",
"a b+c~d": "a%20b%2Bc~d",
"Poznań": "Pozna%C5%84",
}
for in, want := range cases {
if got := percentEncode(in); got != want {
t.Errorf("percentEncode(%q) = %q, want %q", in, got, want)
}
}
}