1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts;
20
21 import java.io.ByteArrayInputStream;
22 import java.io.ByteArrayOutputStream;
23 import java.util.Random;
24 import java.util.StringTokenizer;
25
26 import junit.framework.TestCase;
27
28 import org.dom4j.DocumentException;
29 import org.dom4j.DocumentHelper;
30 import org.junit.Ignore;
31 import org.springframework.extensions.webscripts.connector.RemoteClient;
32 import org.springframework.extensions.webscripts.connector.Response;
33
34
35
36
37
38
39
40
41
42
43
44
45
46 @Ignore public class TestRemoteStore extends TestCase
47 {
48 String TEST_CONTENT1 = "some test text";
49 String TEST_CONTENT2 = "some text text - updated";
50
51 public void testRemoteStore()
52 {
53 RemoteClient remote = new RemoteClient("http://localhost:8080/alfresco/s");
54
55 Response response = remote.call("/api/login?u=admin&pw=admin");
56 assertEquals(200, response.getStatus().getCode());
57 String ticket = null;
58 try
59 {
60 ticket = DocumentHelper.parseText(response.getResponse()).getRootElement().getTextTrim();
61 }
62 catch (DocumentException de)
63 {
64 fail("Failed to extract ticket from login API call.");
65 }
66 remote.setTicket(ticket);
67
68
69 String filename0 = Long.toString((new Random().nextLong())) + ".txt";
70 Response res = remote.call("/remotestore/create/" + filename0, TEST_CONTENT1);
71 assertEquals(200, res.getStatus().getCode());
72
73
74 String randdir = Long.toString((new Random().nextLong()));
75 res = remote.call("/remotestore/create/" + randdir + "/" + filename0, TEST_CONTENT1);
76 assertEquals(200, res.getStatus().getCode());
77
78
79 String randdir2 = randdir + "/" + Long.toString((new Random().nextLong()));
80 res = remote.call("/remotestore/create/" + randdir2 + "/" + filename0, TEST_CONTENT1);
81 assertEquals(200, res.getStatus().getCode());
82
83
84 String filename = Long.toString((new Random().nextLong())) + ".txt";
85 res = remote.call("/remotestore/create/" + filename, new ByteArrayInputStream(TEST_CONTENT1.getBytes()));
86 assertEquals(200, res.getStatus().getCode());
87
88
89 res = remote.call("/remotestore/get/" + filename);
90 assertEquals(200, res.getStatus().getCode());
91 assertEquals(TEST_CONTENT1, res.getResponse());
92
93
94 ByteArrayOutputStream out = new ByteArrayOutputStream();
95 res = remote.call("/remotestore/get/" + filename, out);
96 assertEquals(200, res.getStatus().getCode());
97 assertEquals(TEST_CONTENT1, out.toString());
98
99
100 res = remote.call("/remotestore/has/" + filename);
101 assertEquals(200, res.getStatus().getCode());
102 assertEquals(res.getResponse(), "true");
103 res = remote.call("/remotestore/has/_shouldnotexist.doc");
104 assertEquals(200, res.getStatus().getCode());
105 assertEquals(res.getResponse(), "false");
106
107
108 res = remote.call("/remotestore/update/" + filename, new ByteArrayInputStream(TEST_CONTENT2.getBytes()));
109 assertEquals(200, res.getStatus().getCode());
110
111
112 out = new ByteArrayOutputStream();
113 res = remote.call("/remotestore/get/" + filename, out);
114 assertEquals(200, res.getStatus().getCode());
115 assertEquals(TEST_CONTENT2, out.toString());
116
117
118 res = remote.call("/remotestore/get/_shouldnotexist.doc");
119 assertEquals(404, res.getStatus().getCode());
120
121
122 res = remote.call("/remotestore/listall");
123 assertEquals(200, res.getStatus().getCode());
124 StringTokenizer t = new StringTokenizer(res.getResponse(), "\n");
125 assertTrue(t.countTokens() != 0);
126
127
128 res = remote.call("/remotestore/list/" + randdir);
129 assertEquals(200, res.getStatus().getCode());
130 t = new StringTokenizer(res.getResponse(), "\n");
131 assertEquals(t.countTokens(), 1);
132
133
134 res = remote.call("/remotestore/listall/" + randdir);
135 assertEquals(200, res.getStatus().getCode());
136 t = new StringTokenizer(res.getResponse(), "\n");
137 assertEquals(t.countTokens(), 2);
138
139
140 res = remote.call("/remotestore/list/shouldnotexist");
141 assertEquals(404, res.getStatus().getCode());
142
143
144 res = remote.call("/remotestore/listpattern/" + randdir + "?m=*.nomatch");
145 assertEquals(200, res.getStatus().getCode());
146 t = new StringTokenizer(res.getResponse(), "\n");
147 assertTrue(t.countTokens() == 0);
148
149 res = remote.call("/remotestore/listpattern/" + randdir + "?m=*.txt");
150 assertEquals(200, res.getStatus().getCode());
151 t = new StringTokenizer(res.getResponse(), "\n");
152 assertTrue(t.countTokens() == 2);
153 }
154 }