OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/strings/string_number_conversions.h" | 5 #include "base/strings/string_number_conversions.h" |
6 #include "base/strings/string_util.h" | 6 #include "base/strings/string_util.h" |
7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
8 #include "base/threading/non_thread_safe.h" | 8 #include "base/threading/non_thread_safe.h" |
9 #include "content/public/browser/browser_thread.h" | 9 #include "content/public/browser/browser_thread.h" |
10 #include "content/public/test/browser_test.h" | 10 #include "content/public/test/browser_test.h" |
11 #include "content/public/test/test_utils.h" | 11 #include "content/public/test/test_utils.h" |
12 #include "net/base/io_buffer.h" | 12 #include "net/base/io_buffer.h" |
13 #include "net/base/ip_endpoint.h" | 13 #include "net/base/ip_endpoint.h" |
14 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
15 #include "net/socket/stream_socket.h" | 15 #include "net/socket/stream_socket.h" |
16 #include "net/socket/tcp_server_socket.h" | 16 #include "net/socket/tcp_server_socket.h" |
17 | 17 |
18 using content::BrowserThread; | 18 using content::BrowserThread; |
19 | 19 |
20 namespace { | 20 namespace { |
21 | 21 |
22 const char kHostTransportPrefix[] = "host:transport:"; | 22 const char kHostTransportPrefix[] = "host:transport:"; |
23 const char kLocalAbstractPrefix[] = "localabstract:"; | 23 const char kLocalAbstractPrefix[] = "localabstract:"; |
24 | 24 |
25 const char kOpenedUnixSocketsCommand[] = "shell:cat /proc/net/unix"; | 25 const char kOpenedUnixSocketsCommand[] = "shell:cat /proc/net/unix"; |
26 const char kDeviceModelCommand[] = "shell:getprop ro.product.model"; | 26 const char kDeviceModelCommand[] = "shell:getprop ro.product.model"; |
27 const char kDumpsysCommand[] = "shell:dumpsys window policy"; | 27 const char kDumpsysCommand[] = "shell:dumpsys window policy"; |
28 const char kListProcessesCommand[] = "shell:ps"; | 28 const char kListProcessesCommand[] = "shell:ps"; |
29 const char kInstalledChromePackagesCommand[] = "shell:pm list packages"; | |
30 | 29 |
31 const char kSerialOnline[] = "01498B321301A00A"; | 30 const char kSerialOnline[] = "01498B321301A00A"; |
32 const char kSerialOffline[] = "01498B2B0D01300E"; | 31 const char kSerialOffline[] = "01498B2B0D01300E"; |
33 const char kDeviceModel[] = "Nexus 6"; | 32 const char kDeviceModel[] = "Nexus 6"; |
34 | 33 |
35 const char kJsonVersionPath[] = "/json/version"; | 34 const char kJsonVersionPath[] = "/json/version"; |
36 const char kJsonPath[] = "/json"; | 35 const char kJsonPath[] = "/json"; |
37 const char kJsonListPath[] = "/json/list"; | 36 const char kJsonListPath[] = "/json/list"; |
38 | 37 |
39 const char kHttpRequestTerminator[] = "\r\n\r\n"; | 38 const char kHttpRequestTerminator[] = "\r\n\r\n"; |
(...skipping 20 matching lines...) Expand all Loading... |
60 | 59 |
61 const char kSampleListProcesses[] = | 60 const char kSampleListProcesses[] = |
62 "USER PID PPID VSIZE RSS WCHAN PC NAME\n" | 61 "USER PID PPID VSIZE RSS WCHAN PC NAME\n" |
63 "root 1 0 688 508 ffffffff 00000000 S /init\r\n" | 62 "root 1 0 688 508 ffffffff 00000000 S /init\r\n" |
64 "u0_a75 2425 123 933736 193024 ffffffff 00000000 S com.sample.feed\r\n" | 63 "u0_a75 2425 123 933736 193024 ffffffff 00000000 S com.sample.feed\r\n" |
65 "nfc 741 123 706448 26316 ffffffff 00000000 S com.android.nfc\r\n" | 64 "nfc 741 123 706448 26316 ffffffff 00000000 S com.android.nfc\r\n" |
66 "u0_a76 1001 124 111111 222222 ffffffff 00000000 S com.android.chrome\r\n" | 65 "u0_a76 1001 124 111111 222222 ffffffff 00000000 S com.android.chrome\r\n" |
67 "u0_a77 1002 125 111111 222222 ffffffff 00000000 S com.chrome.beta\r\n" | 66 "u0_a77 1002 125 111111 222222 ffffffff 00000000 S com.chrome.beta\r\n" |
68 "u0_a78 1003 126 111111 222222 ffffffff 00000000 S com.noprocess.app\r\n"; | 67 "u0_a78 1003 126 111111 222222 ffffffff 00000000 S com.noprocess.app\r\n"; |
69 | 68 |
70 const char kSampleListPackages[] = | |
71 "package:com.sample.feed\r\n" | |
72 "package:com.android.nfc\r\n" | |
73 "package:com.android.chrome\r\n" | |
74 "package:com.chrome.beta\r\n" | |
75 "package:com.google.android.apps.chrome\r\n"; | |
76 | |
77 const char kSampleDumpsys[] = | 69 const char kSampleDumpsys[] = |
78 "WINDOW MANAGER POLICY STATE (dumpsys window policy)\r\n" | 70 "WINDOW MANAGER POLICY STATE (dumpsys window policy)\r\n" |
79 " mSafeMode=false mSystemReady=true mSystemBooted=true\r\n" | 71 " mSafeMode=false mSystemReady=true mSystemBooted=true\r\n" |
80 " mStable=(0,50)-(720,1184)\r\n" // Only mStable parameter is parsed | 72 " mStable=(0,50)-(720,1184)\r\n" // Only mStable parameter is parsed |
81 " mForceStatusBar=false mForceStatusBarFromKeyguard=false\r\n"; | 73 " mForceStatusBar=false mForceStatusBarFromKeyguard=false\r\n"; |
82 | 74 |
83 char kSampleChromeVersion[] = "{\n" | 75 char kSampleChromeVersion[] = "{\n" |
84 " \"Browser\": \"Chrome/32.0.1679.0\",\n" | 76 " \"Browser\": \"Chrome/32.0.1679.0\",\n" |
85 " \"Protocol-Version\": \"1.0\",\n" | 77 " \"Protocol-Version\": \"1.0\",\n" |
86 " \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " | 78 " \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
473 } else if (selected_device_ != kSerialOnline) { | 465 } else if (selected_device_ != kSerialOnline) { |
474 NOTREACHED() << "Unknown device - " << selected_device_; | 466 NOTREACHED() << "Unknown device - " << selected_device_; |
475 } else if (command == kDeviceModelCommand) { | 467 } else if (command == kDeviceModelCommand) { |
476 SendResponse(kDeviceModel); | 468 SendResponse(kDeviceModel); |
477 } else if (command == kOpenedUnixSocketsCommand) { | 469 } else if (command == kOpenedUnixSocketsCommand) { |
478 SendResponse(kSampleOpenedUnixSockets); | 470 SendResponse(kSampleOpenedUnixSockets); |
479 } else if (command == kDumpsysCommand) { | 471 } else if (command == kDumpsysCommand) { |
480 SendResponse(kSampleDumpsys); | 472 SendResponse(kSampleDumpsys); |
481 } else if (command == kListProcessesCommand) { | 473 } else if (command == kListProcessesCommand) { |
482 SendResponse(kSampleListProcesses); | 474 SendResponse(kSampleListProcesses); |
483 } else if (command == kInstalledChromePackagesCommand) { | |
484 SendResponse(kSampleListPackages); | |
485 } else if (command.find(kLocalAbstractPrefix) == 0) { | 475 } else if (command.find(kLocalAbstractPrefix) == 0) { |
486 selected_socket_ = command.substr(strlen(kLocalAbstractPrefix)); | 476 selected_socket_ = command.substr(strlen(kLocalAbstractPrefix)); |
487 SendResponse(""); | 477 SendResponse(""); |
488 } else { | 478 } else { |
489 NOTREACHED() << "Unknown command - " << command; | 479 NOTREACHED() << "Unknown command - " << command; |
490 } | 480 } |
491 } | 481 } |
492 | 482 |
493 void SendResponse(const std::string& response) { | 483 void SendResponse(const std::string& response) { |
494 CHECK(CalledOnValidThread()); | 484 CHECK(CalledOnValidThread()); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 | 538 |
549 void StopMockAdbServer() { | 539 void StopMockAdbServer() { |
550 BrowserThread::PostTaskAndReply( | 540 BrowserThread::PostTaskAndReply( |
551 BrowserThread::IO, | 541 BrowserThread::IO, |
552 FROM_HERE, | 542 FROM_HERE, |
553 base::Bind(&StopMockAdbServerOnIOThread), | 543 base::Bind(&StopMockAdbServerOnIOThread), |
554 base::MessageLoop::QuitClosure()); | 544 base::MessageLoop::QuitClosure()); |
555 content::RunMessageLoop(); | 545 content::RunMessageLoop(); |
556 } | 546 } |
557 | 547 |
OLD | NEW |