updates for 0.9.4
[debian/openrocket] / test / net / sf / openrocket / communication / BugReportTest.java
1 package net.sf.openrocket.communication;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6
7 import net.sf.openrocket.util.Prefs;
8
9 import org.junit.Test;
10
11
12 public class BugReportTest {
13         
14         private HttpURLConnectionMock setup() {
15                 HttpURLConnectionMock connection = new HttpURLConnectionMock();
16                 Communicator.setConnectionSource(new ConnectionSourceStub(connection));
17                 
18                 connection.setUseCaches(true);
19                 return connection;
20         }
21         
22         private void check(HttpURLConnectionMock connection) {
23                 assertEquals(Communicator.BUG_REPORT_URL, connection.getTrueUrl());
24                 assertTrue(connection.getConnectTimeout() > 0);
25                 assertEquals(Prefs.getVersion(), connection.getRequestProperty("X-OpenRocket-Version"));
26                 assertTrue(connection.getInstanceFollowRedirects());
27                 assertEquals("POST", connection.getRequestMethod());
28                 assertFalse(connection.getUseCaches());
29         }
30         
31
32         @Test
33         public void testBugReportSuccess() throws IOException {
34                 HttpURLConnectionMock connection = setup();
35                 connection.setResponseCode(Communicator.BUG_REPORT_RESPONSE_CODE);
36                 
37                 String message = 
38                         "MyMessage\n"+
39                         "is important\n"+
40                         "h\u00e4h?";
41                 
42                 BugReporter.sendBugReport(message);
43
44                 check(connection);
45                 
46                 String msg = connection.getOutputStreamString();
47                 assertTrue(msg.indexOf("version=" + Prefs.getVersion()) >= 0);
48                 assertTrue(msg.indexOf(Communicator.encode(message)) >= 0);
49         }
50         
51
52         @Test
53         public void testBugReportFailure() throws IOException {
54                 HttpURLConnectionMock connection = setup();
55                 connection.setResponseCode(200);
56                 
57                 String message = 
58                         "MyMessage\n"+
59                         "is important\n"+
60                         "h\u00e4h?";
61                 
62                 try {
63                         BugReporter.sendBugReport(message);
64                         fail("Exception did not occur");
65                 } catch (IOException e) {
66                         // Success
67                 }
68
69                 check(connection);
70         }
71         
72 }