Index: third_party/gsutil/third_party/oauth2client/tests/test_xsrfutil.py |
diff --git a/third_party/gsutil/third_party/oauth2client/tests/test_xsrfutil.py b/third_party/gsutil/third_party/oauth2client/tests/test_xsrfutil.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5825b5ee4bbb2e8bfcf315757cf061e022996354 |
--- /dev/null |
+++ b/third_party/gsutil/third_party/oauth2client/tests/test_xsrfutil.py |
@@ -0,0 +1,111 @@ |
+# Copyright 2014 Google Inc. All rights reserved. |
+# |
+# Licensed under the Apache License, Version 2.0 (the "License"); |
+# you may not use this file except in compliance with the License. |
+# You may obtain a copy of the License at |
+# |
+# http://www.apache.org/licenses/LICENSE-2.0 |
+# |
+# Unless required by applicable law or agreed to in writing, software |
+# distributed under the License is distributed on an "AS IS" BASIS, |
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+# See the License for the specific language governing permissions and |
+# limitations under the License. |
+"""Tests for oauth2client.xsrfutil. |
+ |
+Unit tests for oauth2client.xsrfutil. |
+""" |
+ |
+__author__ = 'jcgregorio@google.com (Joe Gregorio)' |
+ |
+import unittest |
+ |
+from oauth2client import xsrfutil |
+ |
+# Jan 17 2008, 5:40PM |
+TEST_KEY = 'test key' |
+TEST_TIME = 1200609642081230 |
+TEST_USER_ID_1 = 123832983 |
+TEST_USER_ID_2 = 938297432 |
+TEST_ACTION_ID_1 = 'some_action' |
+TEST_ACTION_ID_2 = 'some_other_action' |
+TEST_EXTRA_INFO_1 = 'extra_info_1' |
+TEST_EXTRA_INFO_2 = 'more_extra_info' |
+ |
+ |
+class XsrfUtilTests(unittest.TestCase): |
+ """Test xsrfutil functions.""" |
+ |
+ def testGenerateAndValidateToken(self): |
+ """Test generating and validating a token.""" |
+ token = xsrfutil.generate_token(TEST_KEY, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ when=TEST_TIME) |
+ |
+ # Check that the token is considered valid when it should be. |
+ self.assertTrue(xsrfutil.validate_token(TEST_KEY, |
+ token, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=TEST_TIME)) |
+ |
+ # Should still be valid 15 minutes later. |
+ later15mins = TEST_TIME + 15*60 |
+ self.assertTrue(xsrfutil.validate_token(TEST_KEY, |
+ token, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=later15mins)) |
+ |
+ # But not if beyond the timeout. |
+ later2hours = TEST_TIME + 2*60*60 |
+ self.assertFalse(xsrfutil.validate_token(TEST_KEY, |
+ token, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=later2hours)) |
+ |
+ # Or if the key is different. |
+ self.assertFalse(xsrfutil.validate_token('another key', |
+ token, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=later15mins)) |
+ |
+ # Or the user ID.... |
+ self.assertFalse(xsrfutil.validate_token(TEST_KEY, |
+ token, |
+ TEST_USER_ID_2, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=later15mins)) |
+ |
+ # Or the action ID... |
+ self.assertFalse(xsrfutil.validate_token(TEST_KEY, |
+ token, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_2, |
+ current_time=later15mins)) |
+ |
+ # Invalid when truncated |
+ self.assertFalse(xsrfutil.validate_token(TEST_KEY, |
+ token[:-1], |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=later15mins)) |
+ |
+ # Invalid with extra garbage |
+ self.assertFalse(xsrfutil.validate_token(TEST_KEY, |
+ token + b'x', |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1, |
+ current_time=later15mins)) |
+ |
+ # Invalid with token of None |
+ self.assertFalse(xsrfutil.validate_token(TEST_KEY, |
+ None, |
+ TEST_USER_ID_1, |
+ action_id=TEST_ACTION_ID_1)) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |