mirror of
https://github.com/revanced/jadb.git
synced 2025-02-05 23:16:47 +01:00
Refactor: Now expected serial is stated in the test for added clarity.
This commit is contained in:
parent
1ff8504e3d
commit
59cc2e9d1e
@ -4,4 +4,6 @@ package se.vidstige.jadb.server;
|
||||
* Created by vidstige on 20/03/14.
|
||||
*/
|
||||
public interface AdbDeviceResponder {
|
||||
String getSerial();
|
||||
String getType();
|
||||
}
|
||||
|
@ -8,11 +8,13 @@ import java.net.Socket;
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
public class AdbProtocolHandler implements Runnable {
|
||||
private Socket socket;
|
||||
private final Socket socket;
|
||||
private final AdbResponder responder;
|
||||
|
||||
public AdbProtocolHandler(Socket socket) {
|
||||
public AdbProtocolHandler(Socket socket, AdbResponder responder) {
|
||||
this.socket = socket;
|
||||
}
|
||||
this.responder = responder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
@ -28,34 +30,33 @@ public class AdbProtocolHandler implements Runnable {
|
||||
byte[] buffer = new byte[4];
|
||||
input.readFully(buffer);
|
||||
String encodedLength = new String(buffer, Charset.forName("utf-8"));
|
||||
System.out.println("DEBUG: " + encodedLength);
|
||||
int length = Integer.parseInt(encodedLength, 16);
|
||||
|
||||
buffer = new byte[length];
|
||||
input.readFully(buffer);
|
||||
String command = new String(buffer, Charset.forName("utf-8"));
|
||||
System.out.println("Command: " + command);
|
||||
|
||||
responder.onCommand(command);
|
||||
|
||||
if ("host:version".equals(command)) {
|
||||
output.write("OKAY");
|
||||
send(output, "001F"); // version. required to be 31
|
||||
System.out.println("OK");
|
||||
send(output, String.format("%04x", responder.getVersion()));
|
||||
}
|
||||
else if ("host:transport-any".equals(command))
|
||||
{
|
||||
output.write("OKAY");
|
||||
System.out.println("OK");
|
||||
}
|
||||
else if ("host:devices".equals(command)) {
|
||||
output.write("OKAY");
|
||||
send(output, "X\tdevice\nY\tdevice");
|
||||
System.out.println("OK");
|
||||
for (AdbDeviceResponder d : responder.getDevices())
|
||||
{
|
||||
send(output, d.getSerial() + "\t" + d.getType() + "\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
output.write("FAIL");
|
||||
send(output, "Unknown command: " + command);
|
||||
System.out.println("FAIL");
|
||||
}
|
||||
output.flush();
|
||||
}
|
||||
|
@ -1,7 +1,14 @@
|
||||
package se.vidstige.jadb.server;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by vidstige on 20/03/14.
|
||||
*/
|
||||
public interface AdbResponder {
|
||||
void onCommand(String command);
|
||||
|
||||
int getVersion();
|
||||
|
||||
List<AdbDeviceResponder> getDevices();
|
||||
}
|
||||
|
@ -8,24 +8,20 @@ import java.net.Socket;
|
||||
public class AdbServer extends SocketServer {
|
||||
|
||||
public static final int DEFAULT_PORT = 15037;
|
||||
private AdbResponder responder;
|
||||
|
||||
public AdbServer()
|
||||
public AdbServer(AdbResponder responder)
|
||||
{
|
||||
this(DEFAULT_PORT);
|
||||
this(responder, DEFAULT_PORT);
|
||||
}
|
||||
|
||||
public AdbServer(int port) {
|
||||
public AdbServer(AdbResponder responder, int port) {
|
||||
super(port);
|
||||
this.responder = responder;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Runnable createResponder(Socket socket) {
|
||||
return new AdbProtocolHandler(socket);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
SocketServer server = new AdbServer();
|
||||
server.run();
|
||||
return new AdbProtocolHandler(socket, responder);
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,8 @@ public class MockedTestCases {
|
||||
|
||||
@Test
|
||||
public void testListDevices() throws Exception {
|
||||
server.add("serial-123");
|
||||
List<JadbDevice> devices = connection.getDevices();
|
||||
Assert.assertEquals("X", devices.get(0).getSerial());
|
||||
Assert.assertEquals("serial-123", devices.get(0).getSerial());
|
||||
}
|
||||
}
|
||||
|
@ -5,15 +5,18 @@ import se.vidstige.jadb.server.AdbResponder;
|
||||
import se.vidstige.jadb.server.AdbServer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by vidstige on 2014-03-20.
|
||||
*/
|
||||
public class FakeAdbServer implements AdbResponder, AdbDeviceResponder {
|
||||
public class FakeAdbServer implements AdbResponder {
|
||||
private final AdbServer server;
|
||||
private List<AdbDeviceResponder> devices = new ArrayList<AdbDeviceResponder>();
|
||||
|
||||
public FakeAdbServer(int port) {
|
||||
server = new AdbServer(port);
|
||||
server = new AdbServer(this, port);
|
||||
}
|
||||
|
||||
|
||||
@ -24,4 +27,42 @@ public class FakeAdbServer implements AdbResponder, AdbDeviceResponder {
|
||||
public void stop() throws IOException, InterruptedException {
|
||||
server.stop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCommand(String command) {
|
||||
System.out.println("command: " +command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getVersion() {
|
||||
return 31;
|
||||
}
|
||||
|
||||
public void add(String serial)
|
||||
{
|
||||
devices.add(new DeviceResponder(serial));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdbDeviceResponder> getDevices() {
|
||||
return devices;
|
||||
}
|
||||
|
||||
private static class DeviceResponder implements AdbDeviceResponder {
|
||||
private final String serial;
|
||||
|
||||
private DeviceResponder(String serial) {
|
||||
this.serial = serial;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerial() {
|
||||
return serial;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType() {
|
||||
return "device";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user