@@ -75,4 +75,50 @@ public function testSign()
75
75
$ this ->assertTrue ($ expectedHeaderPart );
76
76
}
77
77
}
78
+
79
+ public function testSignToRequestAuthorization ()
80
+ {
81
+ $ callbackUri = 'https://example.com/callback ' ;
82
+ $ expectedHeaderParts = [
83
+ 'oauth_consumer_key ' => false ,
84
+ 'oauth_nonce ' => false ,
85
+ 'oauth_signature_method ' => false ,
86
+ 'oauth_timestamp ' => false ,
87
+ 'oauth_version ' => false ,
88
+ 'oauth_callback ' => false ,
89
+ 'oauth_signature ' => false ,
90
+ ];
91
+ $ request = new Request (
92
+ 'POST ' ,
93
+ 'httpx://example.com/ ' ,
94
+ [
95
+ 'Content-Type ' => 'application/x-www-form-urlencoded ' ,
96
+ ]
97
+ );
98
+ $ requestSigner = new RequestSigner (
99
+ new ConsumerKey ('consumer_key ' ),
100
+ new ConsumerSecret ('consumer_secret ' )
101
+ );
102
+
103
+ $ signedRequest = $ requestSigner ->signToRequestAuthorization ($ request , $ callbackUri );
104
+
105
+ $ this ->assertNotSame ($ request , $ signedRequest );
106
+ $ this ->assertTrue ($ signedRequest ->hasHeader ('Authorization ' ));
107
+ $ headerChunks = explode (' ' , current ($ signedRequest ->getHeader ('Authorization ' )));
108
+ $ this ->assertCount (2 , $ headerChunks );
109
+ $ this ->assertSame ('OAuth ' , $ headerChunks [0 ]);
110
+
111
+ $ headerChunks = explode (', ' , $ headerChunks [1 ]);
112
+ $ this ->assertCount (count ($ expectedHeaderParts ), $ headerChunks );
113
+ foreach ($ headerChunks as $ headerChunk ) {
114
+ list ($ key , $ value ) = explode ('= ' , $ headerChunk );
115
+ $ this ->assertTrue (isset ($ expectedHeaderParts [$ key ]));
116
+ $ expectedHeaderParts [$ key ] = true ;
117
+ }
118
+
119
+ foreach ($ expectedHeaderParts as $ expectedHeaderPart ) {
120
+ $ this ->assertInternalType ('bool ' , $ expectedHeaderPart );
121
+ $ this ->assertTrue ($ expectedHeaderPart );
122
+ }
123
+ }
78
124
}
0 commit comments