Changeset View
Changeset View
Standalone View
Standalone View
tests/org/kde/kdeconnect/LanLinkTest.java
Show First 20 Lines • Show All 104 Lines • ▼ Show 20 Line(s) | 98 | public void testSendPackageFail() throws JSONException { | |||
---|---|---|---|---|---|
105 | 105 | | |||
106 | badLanLink.sendPackage(testPackage, callback); | 106 | badLanLink.sendPackage(testPackage, callback); | ||
107 | 107 | | |||
108 | Mockito.verify(callback).onFailure(Mockito.any(RuntimeException.class)); | 108 | Mockito.verify(callback).onFailure(Mockito.any(RuntimeException.class)); | ||
109 | 109 | | |||
110 | } | 110 | } | ||
111 | 111 | | |||
112 | 112 | | |||
113 | public void testSendPayload() throws Exception{ | 113 | public void testSendPayload() throws Exception { | ||
114 | 114 | | |||
115 | class Downloader extends Thread { | 115 | class Downloader extends Thread { | ||
116 | 116 | | |||
117 | NetworkPackage np; | 117 | NetworkPackage np; | ||
118 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); | 118 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); | ||
119 | 119 | | |||
120 | public void setNetworkPackage(NetworkPackage networkPackage){ | 120 | public void setNetworkPackage(NetworkPackage networkPackage) { | ||
121 | this.np = networkPackage; | 121 | this.np = networkPackage; | ||
122 | } | 122 | } | ||
123 | 123 | | |||
124 | public ByteArrayOutputStream getOutputStream(){ | 124 | public ByteArrayOutputStream getOutputStream() { | ||
125 | return outputStream; | 125 | return outputStream; | ||
126 | } | 126 | } | ||
127 | 127 | | |||
128 | @Override | 128 | @Override | ||
129 | public void run(){ | 129 | public void run() { | ||
130 | try { | 130 | try { | ||
131 | 131 | | |||
132 | Socket socket = null; | 132 | Socket socket = null; | ||
133 | try { | 133 | try { | ||
134 | socket = new Socket(); | 134 | socket = new Socket(); | ||
135 | int tcpPort = np.getPayloadTransferInfo().getInt("port"); | 135 | int tcpPort = np.getPayloadTransferInfo().getInt("port"); | ||
136 | InetSocketAddress address = new InetSocketAddress(5000); | 136 | InetSocketAddress address = new InetSocketAddress(5000); | ||
137 | socket.connect(new InetSocketAddress(address.getAddress(), tcpPort)); | 137 | socket.connect(new InetSocketAddress(address.getAddress(), tcpPort)); | ||
138 | np.setPayload(socket.getInputStream(), np.getPayloadSize()); | 138 | np.setPayload(socket.getInputStream(), np.getPayloadSize()); | ||
139 | } catch (Exception e) { | 139 | } catch (Exception e) { | ||
140 | try { socket.close(); } catch(Exception ignored) { throw ignored; } | 140 | try { | ||
141 | socket.close(); | ||||
142 | } catch (Exception ignored) { | ||||
143 | throw ignored; | ||||
144 | } | ||||
141 | e.printStackTrace(); | 145 | e.printStackTrace(); | ||
142 | Log.e("KDE/LanLinkTest", "Exception connecting to remote socket"); | 146 | Log.e("KDE/LanLinkTest", "Exception connecting to remote socket"); | ||
143 | throw e; | 147 | throw e; | ||
144 | } | 148 | } | ||
145 | 149 | | |||
146 | final InputStream input = np.getPayload(); | 150 | final InputStream input = np.getPayload(); | ||
147 | final long fileLength = np.getPayloadSize(); | 151 | final long fileLength = np.getPayloadSize(); | ||
148 | 152 | | |||
Show All 10 Lines | 162 | if (progressPercentage != prevProgressPercentage) { | |||
159 | prevProgressPercentage = progressPercentage; | 163 | prevProgressPercentage = progressPercentage; | ||
160 | } | 164 | } | ||
161 | } | 165 | } | ||
162 | 166 | | |||
163 | } | 167 | } | ||
164 | outputStream.close(); | 168 | outputStream.close(); | ||
165 | input.close(); | 169 | input.close(); | ||
166 | 170 | | |||
167 | } catch(Exception e) { | 171 | } catch (Exception e) { | ||
168 | Log.e("Downloader Test", "Exception"); | 172 | Log.e("Downloader Test", "Exception"); | ||
169 | e.printStackTrace(); | 173 | e.printStackTrace(); | ||
170 | } | 174 | } | ||
171 | } | 175 | } | ||
172 | } | 176 | } | ||
173 | 177 | | |||
174 | 178 | | |||
175 | final Downloader downloader = new Downloader(); | 179 | final Downloader downloader = new Downloader(); | ||
176 | 180 | | |||
177 | // Using byte array for payload, try to use input stream as used in real device | 181 | // Using byte array for payload, try to use input stream as used in real device | ||
178 | String dataString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."+ | 182 | String dataString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + | ||
179 | " Cras vel erat et ante fringilla tristique. Sed consequat ligula at interdum "+ | 183 | " Cras vel erat et ante fringilla tristique. Sed consequat ligula at interdum " + | ||
180 | "rhoncus. Integer semper enim felis, id sodales tellus aliquet eget."+ | 184 | "rhoncus. Integer semper enim felis, id sodales tellus aliquet eget." + | ||
181 | " Sed fringilla ac metus eget dictum. Aliquam euismod non sem sit"+ | 185 | " Sed fringilla ac metus eget dictum. Aliquam euismod non sem sit" + | ||
182 | " amet dapibus. Interdum et malesuada fames ac ante ipsum primis "+ | 186 | " amet dapibus. Interdum et malesuada fames ac ante ipsum primis " + | ||
183 | "in faucibus. Nam et ligula placerat, varius justo eu, convallis "+ | 187 | "in faucibus. Nam et ligula placerat, varius justo eu, convallis " + | ||
184 | "lorem. Nam consequat consequat tortor et gravida. Praesent "+ | 188 | "lorem. Nam consequat consequat tortor et gravida. Praesent " + | ||
185 | "ultricies tortor eget ex elementum gravida. Suspendisse aliquet "+ | 189 | "ultricies tortor eget ex elementum gravida. Suspendisse aliquet " + | ||
186 | "erat a orci feugiat dignissim."; | 190 | "erat a orci feugiat dignissim."; | ||
187 | 191 | | |||
188 | // reallyLongString contains dataString 16 times | 192 | // reallyLongString contains dataString 16 times | ||
189 | String reallyLongString = dataString + dataString; | 193 | String reallyLongString = dataString + dataString; | ||
190 | reallyLongString = reallyLongString + reallyLongString; | 194 | reallyLongString = reallyLongString + reallyLongString; | ||
191 | reallyLongString = reallyLongString + reallyLongString; | 195 | reallyLongString = reallyLongString + reallyLongString; | ||
192 | reallyLongString = reallyLongString + reallyLongString; | 196 | reallyLongString = reallyLongString + reallyLongString; | ||
193 | 197 | | |||
Show All 18 Lines | 215 | Mockito.doAnswer(new Answer() { | |||
212 | @Override | 216 | @Override | ||
213 | public Object answer(InvocationOnMock invocationOnMock) throws Throwable { | 217 | public Object answer(InvocationOnMock invocationOnMock) throws Throwable { | ||
214 | return sharePackageJson.getJSONObject("payloadTransferInfo"); | 218 | return sharePackageJson.getJSONObject("payloadTransferInfo"); | ||
215 | } | 219 | } | ||
216 | }).when(sharePackage).getPayloadTransferInfo(); | 220 | }).when(sharePackage).getPayloadTransferInfo(); | ||
217 | Mockito.doAnswer(new Answer() { | 221 | Mockito.doAnswer(new Answer() { | ||
218 | @Override | 222 | @Override | ||
219 | public Object answer(InvocationOnMock invocationOnMock) throws Throwable { | 223 | public Object answer(InvocationOnMock invocationOnMock) throws Throwable { | ||
220 | JSONObject object = (JSONObject)invocationOnMock.getArguments()[0]; | 224 | JSONObject object = (JSONObject) invocationOnMock.getArguments()[0]; | ||
221 | 225 | | |||
222 | sharePackageJson.put("payloadTransferInfo", object); | 226 | sharePackageJson.put("payloadTransferInfo", object); | ||
223 | return null; | 227 | return null; | ||
224 | } | 228 | } | ||
225 | }).when(sharePackage).setPayloadTransferInfo(Mockito.any(JSONObject.class)); | 229 | }).when(sharePackage).setPayloadTransferInfo(Mockito.any(JSONObject.class)); | ||
226 | 230 | | |||
227 | Mockito.doAnswer(new Answer() { | 231 | Mockito.doAnswer(new Answer() { | ||
228 | @Override | 232 | @Override | ||
229 | public Object answer(InvocationOnMock invocationOnMock) throws Throwable { | 233 | public Object answer(InvocationOnMock invocationOnMock) throws Throwable { | ||
230 | 234 | | |||
231 | Log.e("LanLinkTest","Write to stream"); | 235 | Log.e("LanLinkTest", "Write to stream"); | ||
232 | String stringNetworkPackage = new String((byte[])invocationOnMock.getArguments()[0]); | 236 | String stringNetworkPackage = new String((byte[]) invocationOnMock.getArguments()[0]); | ||
233 | final NetworkPackage np = NetworkPackage.unserialize(stringNetworkPackage); | 237 | final NetworkPackage np = NetworkPackage.unserialize(stringNetworkPackage); | ||
234 | 238 | | |||
235 | downloader.setNetworkPackage(np); | 239 | downloader.setNetworkPackage(np); | ||
236 | downloader.start(); | 240 | downloader.start(); | ||
237 | 241 | | |||
238 | return stringNetworkPackage.length(); | 242 | return stringNetworkPackage.length(); | ||
239 | } | 243 | } | ||
240 | }).when(goodOutputStream).write(Mockito.any(byte[].class)); | 244 | }).when(goodOutputStream).write(Mockito.any(byte[].class)); | ||
241 | 245 | | |||
242 | goodLanLink.sendPackage(sharePackage, callback); | 246 | goodLanLink.sendPackage(sharePackage, callback); | ||
243 | 247 | | |||
244 | try { | 248 | try { | ||
245 | // Wait 1 secs for downloader to finish (if some error, it will continue and assert will fail) | 249 | // Wait 1 secs for downloader to finish (if some error, it will continue and assert will fail) | ||
246 | downloader.join(1*1000); | 250 | downloader.join(1 * 1000); | ||
247 | }catch (Exception e){ | 251 | } catch (Exception e) { | ||
248 | e.printStackTrace(); | 252 | e.printStackTrace(); | ||
249 | throw e; | 253 | throw e; | ||
250 | } | 254 | } | ||
251 | assertEquals(new String(data), new String(downloader.getOutputStream().toByteArray())); | 255 | assertEquals(new String(data), new String(downloader.getOutputStream().toByteArray())); | ||
252 | 256 | | |||
253 | Mockito.verify(callback).onSuccess(); | 257 | Mockito.verify(callback).onSuccess(); | ||
254 | 258 | | |||
255 | } | 259 | } | ||
256 | } | 260 | } |