diff --git a/system_tests/conftest.py b/system_tests/conftest.py
index 066f805..ebbae48 100644
--- a/system_tests/conftest.py
+++ b/system_tests/conftest.py
@@ -34,6 +34,12 @@
 
 
 @pytest.fixture
+def authorized_user_file():
+    """The full path to a valid authorized user file."""
+    yield os.path.join(DATA_DIR, 'authorized_user.json')
+
+
+@pytest.fixture
 def request():
     """A transport.request object."""
     yield google.auth.transport.urllib3.Request(HTTP)
diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc
index bbe290f..e61707e 100644
--- a/system_tests/secrets.tar.enc
+++ b/system_tests/secrets.tar.enc
Binary files differ
diff --git a/system_tests/test_oauth2_credentials.py b/system_tests/test_oauth2_credentials.py
new file mode 100644
index 0000000..e268519
--- /dev/null
+++ b/system_tests/test_oauth2_credentials.py
@@ -0,0 +1,43 @@
+# Copyright 2016 Google Inc.
+#
+# 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.
+
+import json
+
+from google.auth import _helpers
+import google.oauth2.credentials
+
+GOOGLE_OAUTH2_TOKEN_ENDPOINT = 'https://accounts.google.com/o/oauth2/token'
+
+
+def test_refresh(authorized_user_file, request, token_info):
+    with open(authorized_user_file, 'r') as fh:
+        info = json.load(fh)
+
+    credentials = google.oauth2.credentials.Credentials(
+        None,  # No access token, must be refreshed.
+        refresh_token=info['refresh_token'],
+        token_uri=GOOGLE_OAUTH2_TOKEN_ENDPOINT,
+        client_id=info['client_id'],
+        client_secret=info['client_secret'])
+
+    credentials.refresh(request)
+
+    assert credentials.token
+
+    info = token_info(credentials.token)
+
+    info_scopes = _helpers.string_to_scopes(info['scope'])
+    assert set(info_scopes) == set([
+        'https://www.googleapis.com/auth/userinfo.email',
+        'https://www.googleapis.com/auth/userinfo.profile'])
