Log RDAP output formatting failures

Also, a couple tests are reworked to make their output more understandable in
case of failure.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=176670087
This commit is contained in:
mountford 2017-11-22 10:05:33 -08:00 committed by jianglai
parent a92cdbe8c3
commit d75071f503
2 changed files with 11 additions and 5 deletions

View file

@ -179,7 +179,8 @@ public abstract class RdapActionBase implements Runnable {
response.setPayload(new JacksonFactory().toPrettyString(rdapJson)); response.setPayload(new JacksonFactory().toPrettyString(rdapJson));
return; return;
} catch (IOException e) { } catch (IOException e) {
// On exception, fall back to unformatted output logger.warning(
e, "Unable to pretty-print RDAP JSON response; falling back to unformatted output.");
} }
} }
response.setPayload(JSONValue.toJSONString(rdapJson)); response.setPayload(JSONValue.toJSONString(rdapJson));

View file

@ -233,14 +233,19 @@ public class RdapActionBaseTest {
.build()); .build());
} }
private String loadFileWithoutTrailingNewline(String fileName) {
String contents = loadFileWithSubstitutions(this.getClass(), fileName, null);
return contents.endsWith("\n") ? contents.substring(0, contents.length() - 1) : contents;
}
@Test @Test
public void testUnformatted() throws Exception { public void testUnformatted() throws Exception {
action.requestPath = RdapTestAction.PATH + "no.thing"; action.requestPath = RdapTestAction.PATH + "no.thing";
action.fullServletPath = "http://myserver.example.com" + RdapTestAction.PATH; action.fullServletPath = "http://myserver.example.com" + RdapTestAction.PATH;
action.requestMethod = GET; action.requestMethod = GET;
action.run(); action.run();
assertThat(response.getPayload() + '\n').isEqualTo( assertThat(response.getPayload())
loadFileWithSubstitutions(this.getClass(), "rdap_unformatted_output.json", null)); .isEqualTo(loadFileWithoutTrailingNewline("rdap_unformatted_output.json"));
} }
@Test @Test
@ -250,7 +255,7 @@ public class RdapActionBaseTest {
action.requestMethod = GET; action.requestMethod = GET;
action.formatOutputParam = Optional.of(true); action.formatOutputParam = Optional.of(true);
action.run(); action.run();
assertThat(response.getPayload() + '\n').isEqualTo( assertThat(response.getPayload())
loadFileWithSubstitutions(this.getClass(), "rdap_formatted_output.json", null)); .isEqualTo(loadFileWithoutTrailingNewline("rdap_formatted_output.json"));
} }
} }