Added (optional) opaque support to DigestAuth

Reviewed in http://codereview.appspot.com/4661044/
diff --git a/python2/httplib2test.py b/python2/httplib2test.py
index 1efcd3c..bb9a32c 100755
--- a/python2/httplib2test.py
+++ b/python2/httplib2test.py
@@ -1470,6 +1470,21 @@
         working_request = 'authorization: Digest username="joe", realm="myrealm", nonce="Ygk86AsKBAA=3516200d37f9a3230352fde99977bd6d472d4306", uri="/projects/httplib2/test/digest/", algorithm=MD5, response="97ed129401f7cdc60e5db58a80f3ea8b", qop=auth, nc=00000001, cnonce="33033375ec278a46"'
         self.assertEqual(our_request, working_request)
 
+    def testDigestObjectWithOpaque(self):
+        credentials = ('joe', 'password')
+        host = None
+        request_uri = '/projects/httplib2/test/digest/'
+        headers = {}
+        response = {
+            'www-authenticate': 'Digest realm="myrealm", nonce="Ygk86AsKBAA=3516200d37f9a3230352fde99977bd6d472d4306", algorithm=MD5, qop="auth", opaque="atestopaque"'
+        }
+        content = ""
+
+        d = httplib2.DigestAuthentication(credentials, host, request_uri, headers, response, content, None)
+        d.request("GET", request_uri, headers, content, cnonce="33033375ec278a46")
+        our_request = "authorization: %s" % headers['authorization']
+        working_request = 'authorization: Digest username="joe", realm="myrealm", nonce="Ygk86AsKBAA=3516200d37f9a3230352fde99977bd6d472d4306", uri="/projects/httplib2/test/digest/", algorithm=MD5, response="97ed129401f7cdc60e5db58a80f3ea8b", qop=auth, nc=00000001, cnonce="33033375ec278a46", opaque="atestopaque"'
+        self.assertEqual(our_request, working_request)
 
     def testDigestObjectStale(self):
         credentials = ('joe', 'password')