/**
  * Confirms that cURL options are returned as expected.
  */
 public function testCurlOptions()
 {
     $request = new Request('foo.bar/api', array('composer' => 'brahms'));
     $expected = array(CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_URL => 'http://foo.bar/api?composer=brahms', CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 10);
     $this->assertEquals($expected, $request->getCurlOptions());
     $request->autoRedirect(false);
     unset($expected[CURLOPT_FOLLOWLOCATION]);
     unset($expected[CURLOPT_MAXREDIRS]);
     $this->assertEquals($expected, $request->getCurlOptions());
     $request->setVerb('FROWN');
     $expected[CURLOPT_CUSTOMREQUEST] = 'FROWN';
     $this->assertEquals($expected, $request->getCurlOptions());
     $postContent = 'aosidfjoaisdfjoiasdfj';
     $request->setPayload($postContent);
     $request->setVerb('POST');
     $expected[CURLOPT_CUSTOMREQUEST] = 'POST';
     $expected[CURLOPT_POSTFIELDS] = $postContent;
     // When the payload is a string, the content type should be this
     $expected[CURLOPT_HTTPHEADER] = array('Content-Type: application/x-www-form-urlencoded');
     $this->assertEquals($expected, $request->getCurlOptions());
     // WHen it's an array, it's this
     $postContent = array('foo' => 'bar');
     $request->setPayload($postContent);
     $expected[CURLOPT_HTTPHEADER] = array('Content-Type: multipart/form-data');
     $expected[CURLOPT_POSTFIELDS] = $postContent;
     $request->setBasicAuthentication('max', 'mypassword123');
     $expected[CURLOPT_USERPWD] = 'max:mypassword123';
     $this->assertEquals($expected, $request->getCurlOptions());
     $request->setHeader('Foo: bar');
     $expected[CURLOPT_HTTPHEADER][] = 'Foo: bar';
     $this->assertEquals($expected, $request->getCurlOptions());
 }