@@ -131,20 +131,44 @@ public void fromJson_hasAccessToken() throws IOException {
131131 MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory ();
132132 transportFactory .transport .addClient (CLIENT_ID , CLIENT_SECRET );
133133 transportFactory .transport .addRefreshToken (REFRESH_TOKEN , ACCESS_TOKEN );
134- GenericJson json = writeUserJson (CLIENT_ID , CLIENT_SECRET , REFRESH_TOKEN , null );
134+ GenericJson json = writeUserJson (CLIENT_ID , CLIENT_SECRET , REFRESH_TOKEN , null , null );
135135
136136 GoogleCredentials credentials = UserCredentials .fromJson (json , transportFactory );
137137
138138 Map <String , List <String >> metadata = credentials .getRequestMetadata (CALL_URI );
139139 TestUtils .assertContainsBearerToken (metadata , ACCESS_TOKEN );
140140 }
141141
142+ @ Test
143+ public void fromJson_hasTokenUri () throws IOException {
144+ String tokenUrl = "token.url.xyz" ;
145+ MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory ();
146+ transportFactory .transport .addClient (CLIENT_ID , CLIENT_SECRET );
147+ transportFactory .transport .addRefreshToken (REFRESH_TOKEN , ACCESS_TOKEN );
148+ GenericJson json = writeUserJson (CLIENT_ID , CLIENT_SECRET , REFRESH_TOKEN , null , tokenUrl );
149+
150+ UserCredentials credentials = UserCredentials .fromJson (json , transportFactory );
151+ assertEquals (URI .create (tokenUrl ), credentials .toBuilder ().getTokenServerUri ());
152+ }
153+
154+ @ Test
155+ public void fromJson_emptyTokenUri () throws IOException {
156+ String tokenUrl = "" ;
157+ MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory ();
158+ transportFactory .transport .addClient (CLIENT_ID , CLIENT_SECRET );
159+ transportFactory .transport .addRefreshToken (REFRESH_TOKEN , ACCESS_TOKEN );
160+ GenericJson json = writeUserJson (CLIENT_ID , CLIENT_SECRET , REFRESH_TOKEN , null , tokenUrl );
161+
162+ UserCredentials credentials = UserCredentials .fromJson (json , transportFactory );
163+ assertEquals (OAuth2Utils .TOKEN_SERVER_URI , credentials .toBuilder ().getTokenServerUri ());
164+ }
165+
142166 @ Test
143167 public void fromJson_hasQuotaProjectId () throws IOException {
144168 MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory ();
145169 transportFactory .transport .addClient (CLIENT_ID , CLIENT_SECRET );
146170 transportFactory .transport .addRefreshToken (REFRESH_TOKEN , ACCESS_TOKEN );
147- GenericJson json = writeUserJson (CLIENT_ID , CLIENT_SECRET , REFRESH_TOKEN , QUOTA_PROJECT );
171+ GenericJson json = writeUserJson (CLIENT_ID , CLIENT_SECRET , REFRESH_TOKEN , QUOTA_PROJECT , null );
148172
149173 GoogleCredentials credentials = UserCredentials .fromJson (json , transportFactory );
150174
@@ -865,7 +889,7 @@ public void userCredentials_toBuilder_copyEveryAttribute() {
865889 }
866890
867891 static GenericJson writeUserJson (
868- String clientId , String clientSecret , String refreshToken , String quotaProjectId ) {
892+ String clientId , String clientSecret , String refreshToken , String quotaProjectId , String tokenUrl ) {
869893 GenericJson json = new GenericJson ();
870894 if (clientId != null ) {
871895 json .put ("client_id" , clientId );
@@ -879,14 +903,17 @@ static GenericJson writeUserJson(
879903 if (quotaProjectId != null ) {
880904 json .put ("quota_project_id" , quotaProjectId );
881905 }
906+ if (tokenUrl != null ) {
907+ json .put ("token_uri" , tokenUrl );
908+ }
882909 json .put ("type" , GoogleCredentials .USER_FILE_TYPE );
883910 return json ;
884911 }
885912
886913 static InputStream writeUserStream (
887914 String clientId , String clientSecret , String refreshToken , String quotaProjectId )
888915 throws IOException {
889- GenericJson json = writeUserJson (clientId , clientSecret , refreshToken , quotaProjectId );
916+ GenericJson json = writeUserJson (clientId , clientSecret , refreshToken , quotaProjectId , null );
890917 return TestUtils .jsonToInputStream (json );
891918 }
892919
0 commit comments