12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/callback.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/values.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/test/chromedriver/chrome/javascript_dialog_manager.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/test/chromedriver/chrome/status.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/test/chromedriver/chrome/stub_devtools_client.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(JavaScriptDialogManager, NoDialog) { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) StubDevToolsClient client; 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager manager(&client); 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string message("HI"); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_STREQ("HI", message.c_str()); 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class RecorderDevToolsClient : public StubDevToolsClient { 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RecorderDevToolsClient() {} 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~RecorderDevToolsClient() {} 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Overridden from StubDevToolsClient: 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual Status SendCommandAndGetResult( 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& method, 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::DictionaryValue& params, 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<base::DictionaryValue>* result) OVERRIDE { 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) method_ = method; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params_.Clear(); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params_.MergeDictionary(¶ms); 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Status(kOk); 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string method_; 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue params_; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(JavaScriptDialogManager, HandleDialogPassesParams) { 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RecorderDevToolsClient client; 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager manager(&client); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue params; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.SetString("message", "hi"); 54868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 55868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 56868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) std::string given_text("text"); 5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kOk, manager.HandleDialog(false, &given_text).code()); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string text; 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) client.params_.GetString("promptText", &text); 6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(given_text, text); 6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_TRUE(client.params_.HasKey("accept")); 6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 6490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 6590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)TEST(JavaScriptDialogManager, HandleDialogNullPrompt) { 6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) RecorderDevToolsClient client; 6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) JavaScriptDialogManager manager(&client); 6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) base::DictionaryValue params; 6990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) params.SetString("message", "hi"); 70868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 71868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 72868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 7390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kOk, manager.HandleDialog(false, NULL).code()); 7490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_FALSE(client.params_.HasKey("promptText")); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(client.params_.HasKey("accept")); 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(JavaScriptDialogManager, ReconnectClearsStateAndSendsEnable) { 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RecorderDevToolsClient client; 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager manager(&client); 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue params; 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.SetString("message", "hi"); 83868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 84868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 85868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(manager.IsDialogOpen()); 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string message; 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ASSERT_TRUE(manager.OnConnected(&client).IsOk()); 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ("Page.enable", client.method_); 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 9490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FakeDevToolsClient : public StubDevToolsClient { 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FakeDevToolsClient() : listener_(NULL), closing_count_(0) {} 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~FakeDevToolsClient() {} 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_closing_count(int closing_count) { 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) closing_count_ = closing_count; 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Overridden from StubDevToolsClient: 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual Status SendCommandAndGetResult( 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& method, 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::DictionaryValue& params, 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<base::DictionaryValue>* result) OVERRIDE { 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (closing_count_ > 0) { 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue empty; 115868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) Status status = 116868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) listener_->OnEvent(this, "Page.javascriptDialogClosing", empty); 117868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (status.IsError()) 118868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return status; 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) closing_count_--; 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Status(kOk); 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void AddListener(DevToolsEventListener* listener) OVERRIDE { 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) listener_ = listener; 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DevToolsEventListener* listener_; 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int closing_count_; 1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(JavaScriptDialogManager, OneDialog) { 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FakeDevToolsClient client; 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager manager(&client); 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue params; 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.SetString("message", "hi"); 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string message; 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 143868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 144868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 145868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(manager.IsDialogOpen()); 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ("hi", message); 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) client.set_closing_count(1); 15190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kOk, manager.HandleDialog(false, NULL).code()); 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 15490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(JavaScriptDialogManager, TwoDialogs) { 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FakeDevToolsClient client; 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager manager(&client); 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue params; 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.SetString("message", "1"); 162868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 163868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 164868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.SetString("message", "2"); 166868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 167868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 168868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string message; 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(manager.IsDialogOpen()); 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ("1", message); 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kOk, manager.HandleDialog(false, NULL).code()); 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(manager.IsDialogOpen()); 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ("2", message); 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) client.set_closing_count(2); 18190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kOk, manager.HandleDialog(false, NULL).code()); 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 18490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(JavaScriptDialogManager, OneDialogManualClose) { 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) StubDevToolsClient client; 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JavaScriptDialogManager manager(&client); 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::DictionaryValue params; 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.SetString("message", "hi"); 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string message; 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 196868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 197868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 198868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_TRUE(manager.IsDialogOpen()); 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kOk, manager.GetDialogMessage(&message).code()); 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ("hi", message); 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 203868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ASSERT_EQ( 204868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) kOk, 205868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) manager.OnEvent(&client, "Page.javascriptDialogClosing", params).code()); 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_FALSE(manager.IsDialogOpen()); 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.GetDialogMessage(&message).code()); 20890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ASSERT_EQ(kNoAlertOpen, manager.HandleDialog(false, NULL).code()); 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 210