private function getServerTokens($qop = Sabre_HTTP_DigestAuth::QOP_AUTH)
 {
     $this->auth->requireLogin();
     switch ($qop) {
         case Sabre_HTTP_DigestAuth::QOP_AUTH:
             $qopstr = 'auth';
             break;
         case Sabre_HTTP_DigestAuth::QOP_AUTHINT:
             $qopstr = 'auth-int';
             break;
         default:
             $qopstr = 'auth,auth-int';
             break;
     }
     $test = preg_match('/Digest realm="' . self::REALM . '",qop="' . $qopstr . '",nonce="([0-9a-f]*)",opaque="([0-9a-f]*)"/', $this->response->headers['WWW-Authenticate'], $matches);
     $this->assertTrue($test == true, 'The WWW-Authenticate response didn\'t match our pattern. We received: ' . $this->response->headers['WWW-Authenticate']);
     $nonce = $matches[1];
     $opaque = $matches[2];
     // Reset our environment
     $this->setUp();
     $this->auth->setQOP($qop);
     return array($nonce, $opaque);
 }