Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Unified Diff: extensions/browser/api/hid/hid_apitest.cc

Issue 1115213004: Add chrome.hid.getUserSelectedDevices API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api/hid/hid_apitest.cc
diff --git a/extensions/browser/api/hid/hid_apitest.cc b/extensions/browser/api/hid/hid_apitest.cc
index c53bc336ce8c3bfc2314951a8a4d3170e2b2193a..e50f50dacb4187946f385310eb703b9bb4240681 100644
--- a/extensions/browser/api/hid/hid_apitest.cc
+++ b/extensions/browser/api/hid/hid_apitest.cc
@@ -10,6 +10,8 @@
#include "device/hid/hid_device_info.h"
#include "device/hid/hid_service.h"
#include "device/hid/hid_usage_and_page.h"
+#include "extensions/browser/api/device_permissions_prompt.h"
+#include "extensions/shell/browser/shell_extensions_api_client.h"
#include "extensions/shell/test/shell_apitest.h"
#include "extensions/test/extension_test_message_listener.h"
#include "net/base/io_buffer.h"
@@ -157,7 +159,7 @@ class MockHidService : public HidService {
kReportDescriptor + sizeof(kReportDescriptor));
}
HidService::AddDevice(new HidDeviceInfo(device_id, vendor_id, product_id,
- "", "", kHIDBusTypeUSB,
+ "Test Device", "", kHIDBusTypeUSB,
report_descriptor));
}
@@ -170,6 +172,38 @@ class MockHidService : public HidService {
namespace extensions {
+class TestDevicePermissionsPrompt
+ : public DevicePermissionsPrompt,
+ public DevicePermissionsPrompt::Prompt::Observer {
+ public:
+ TestDevicePermissionsPrompt(content::WebContents* web_contents)
+ : DevicePermissionsPrompt(web_contents) {}
+
+ ~TestDevicePermissionsPrompt() override { prompt()->SetObserver(nullptr); }
+
+ void ShowDialog() override { prompt()->SetObserver(this); }
+
+ void OnDevicesChanged() override {
+ for (size_t i = 0; i < prompt()->GetDeviceCount(); ++i) {
+ prompt()->GrantDevicePermission(i);
+ if (!prompt()->multiple()) {
+ break;
+ }
+ }
+ prompt()->Dismissed();
+ }
+};
+
+class TestExtensionsAPIClient : public ShellExtensionsAPIClient {
+ public:
+ TestExtensionsAPIClient() : ShellExtensionsAPIClient() {}
+
+ scoped_ptr<DevicePermissionsPrompt> CreateDevicePermissionsPrompt(
+ content::WebContents* web_contents) const override {
+ return make_scoped_ptr(new TestDevicePermissionsPrompt(web_contents));
+ }
+};
+
class HidApiTest : public ShellApiTest {
public:
void SetUpOnMainThread() override {
@@ -219,4 +253,21 @@ IN_PROC_BROWSER_TEST_F(HidApiTest, OnDeviceRemoved) {
EXPECT_EQ("success", result_listener.message());
}
+IN_PROC_BROWSER_TEST_F(HidApiTest, GetUserSelectedDevices) {
+ ExtensionTestMessageListener open_listener("opened_device", false);
+
+ TestExtensionsAPIClient test_api_client;
+ ASSERT_TRUE(LoadApp("api_test/hid/get_user_selected_devices"));
+ ASSERT_TRUE(open_listener.WaitUntilSatisfied());
+
+ ExtensionTestMessageListener remove_listener("removed", false);
+ hid_service_->RemoveDevice(kTestDeviceIds[0]);
+ ASSERT_TRUE(remove_listener.WaitUntilSatisfied());
+
+ // TODO(reillyg): Enable this part of the test when crbug.com/483328 is fixed.
Devlin 2015/05/05 22:19:50 according to the bug, it is fixed?
Reilly Grant (use Gerrit) 2015/05/06 00:52:53 I sent out this review as I was landing the patch.
+ // ExtensionTestMessageListener add_listener("added", false);
+ // hid_service_->AddDevice(kTestDeviceIds[0], 0x18D1, 0x58F0, true);
+ // ASSERT_TRUE(add_listener.WaitUntilSatisfied());
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698