@@ -75,4 +75,50 @@ public function testSign()
7575 $ this ->assertTrue ($ expectedHeaderPart );
7676 }
7777 }
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+ }
78124}
0 commit comments