Skip to content

Commit f108ea1

Browse files
committed
For open source Parse with /parse mounts, this fix helps avoid the problem of remembering to add
the trailing slash.
1 parent 036b0cb commit f108ea1

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

Parse/src/main/java/com/parse/Parse.java

+7
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,13 @@ public Builder clientKey(String clientKey) {
142142
* @return The same builder, for easy chaining.
143143
*/
144144
public Builder server(String server) {
145+
146+
// Add an extra trailing slash so that Parse REST commands include
147+
// the path as part of the server URL (i.e. http://api.myhost.com/parse)
148+
if (server.endsWith("/") == false) {
149+
server = server + "/";
150+
}
151+
145152
this.server = server;
146153
return this;
147154
}

Parse/src/test/java/com/parse/ParseClientConfigurationTest.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,31 @@ public void testBuilder() {
3030
Parse.Configuration.Builder builder = new Parse.Configuration.Builder(null);
3131
builder.applicationId("foo");
3232
builder.clientKey("bar");
33-
builder.server("some.server");
3433
builder.enableLocalDataStore();
3534
Parse.Configuration configuration = builder.build();
3635

3736
assertNull(configuration.context);
3837
assertEquals(configuration.applicationId, "foo");
3938
assertEquals(configuration.clientKey, "bar");
40-
assertEquals(configuration.server, "some.server");
4139
assertEquals(configuration.localDataStoreEnabled, true);
4240
}
4341

42+
@Test
43+
public void testBuilderServerURL() {
44+
Parse.Configuration.Builder builder = new Parse.Configuration.Builder(null);
45+
builder.server("http://myserver.com/parse/");
46+
Parse.Configuration configuration = builder.build();
47+
assertEquals(configuration.server, "http://myserver.com/parse/");
48+
}
49+
50+
@Test
51+
public void testBuilderServerMissingSlashURL() {
52+
Parse.Configuration.Builder builder = new Parse.Configuration.Builder(null);
53+
builder.server("http://myserver.com/missingslash");
54+
Parse.Configuration configuration = builder.build();
55+
assertEquals(configuration.server, "http://myserver.com/missingslash/");
56+
}
57+
4458
@Test
4559
public void testNetworkInterceptors() {
4660
ParseNetworkInterceptor interceptorA = mock(ParseNetworkInterceptor.class);

0 commit comments

Comments
 (0)