@@ -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,11 @@ public void userCredentials_toBuilder_copyEveryAttribute() {
865889 }
866890
867891 static GenericJson writeUserJson (
868- String clientId , String clientSecret , String refreshToken , String quotaProjectId ) {
892+ String clientId ,
893+ String clientSecret ,
894+ String refreshToken ,
895+ String quotaProjectId ,
896+ String tokenUrl ) {
869897 GenericJson json = new GenericJson ();
870898 if (clientId != null ) {
871899 json .put ("client_id" , clientId );
@@ -879,14 +907,17 @@ static GenericJson writeUserJson(
879907 if (quotaProjectId != null ) {
880908 json .put ("quota_project_id" , quotaProjectId );
881909 }
910+ if (tokenUrl != null ) {
911+ json .put ("token_uri" , tokenUrl );
912+ }
882913 json .put ("type" , GoogleCredentials .USER_FILE_TYPE );
883914 return json ;
884915 }
885916
886917 static InputStream writeUserStream (
887918 String clientId , String clientSecret , String refreshToken , String quotaProjectId )
888919 throws IOException {
889- GenericJson json = writeUserJson (clientId , clientSecret , refreshToken , quotaProjectId );
920+ GenericJson json = writeUserJson (clientId , clientSecret , refreshToken , quotaProjectId , null );
890921 return TestUtils .jsonToInputStream (json );
891922 }
892923
0 commit comments