| Index: remoting/host/it2me/it2me_host_unittest.cc
|
| diff --git a/remoting/host/it2me/it2me_host_unittest.cc b/remoting/host/it2me/it2me_host_unittest.cc
|
| index c316e1de45ea39d0024340bc86130c012405461c..ef11fbd9cf590461b4858d6a4769c78b380a1a7f 100644
|
| --- a/remoting/host/it2me/it2me_host_unittest.cc
|
| +++ b/remoting/host/it2me/it2me_host_unittest.cc
|
| @@ -50,20 +50,17 @@ const char kMismatchedDomain3[] = "not_even_close.com";
|
|
|
| class FakeIt2MeConfirmationDialog : public It2MeConfirmationDialog {
|
| public:
|
| - FakeIt2MeConfirmationDialog();
|
| + FakeIt2MeConfirmationDialog(const std::string& remote_user_email,
|
| + DialogResult dialog_result);
|
| ~FakeIt2MeConfirmationDialog() override;
|
|
|
| // It2MeConfirmationDialog implementation.
|
| void Show(const std::string& remote_user_email,
|
| const ResultCallback& callback) override;
|
|
|
| - void set_dialog_result(DialogResult dialog_result) {
|
| - dialog_result_ = dialog_result;
|
| - }
|
| -
|
| - const std::string& get_remote_user_email() { return remote_user_email_; }
|
| -
|
| private:
|
| + FakeIt2MeConfirmationDialog();
|
| +
|
| std::string remote_user_email_;
|
| DialogResult dialog_result_ = DialogResult::OK;
|
|
|
| @@ -72,16 +69,54 @@ class FakeIt2MeConfirmationDialog : public It2MeConfirmationDialog {
|
|
|
| FakeIt2MeConfirmationDialog::FakeIt2MeConfirmationDialog() {}
|
|
|
| +FakeIt2MeConfirmationDialog::FakeIt2MeConfirmationDialog(
|
| + const std::string& remote_user_email,
|
| + DialogResult dialog_result)
|
| + : remote_user_email_(remote_user_email), dialog_result_(dialog_result) {}
|
| +
|
| FakeIt2MeConfirmationDialog::~FakeIt2MeConfirmationDialog() {}
|
|
|
| void FakeIt2MeConfirmationDialog::Show(const std::string& remote_user_email,
|
| const ResultCallback& callback) {
|
| - remote_user_email_ = remote_user_email;
|
| + EXPECT_STREQ(remote_user_email_.c_str(), remote_user_email.c_str());
|
|
|
| base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| FROM_HERE, base::Bind(callback, dialog_result_));
|
| }
|
|
|
| +class FakeIt2MeDialogFactory : public It2MeConfirmationDialogFactory {
|
| + public:
|
| + FakeIt2MeDialogFactory();
|
| + ~FakeIt2MeDialogFactory() override;
|
| +
|
| + std::unique_ptr<It2MeConfirmationDialog> Create() override;
|
| +
|
| + void set_dialog_result(DialogResult dialog_result) {
|
| + dialog_result_ = dialog_result;
|
| + }
|
| +
|
| + void set_remote_user_email(const std::string& remote_user_email) {
|
| + remote_user_email_ = remote_user_email;
|
| + }
|
| +
|
| + private:
|
| + std::string remote_user_email_;
|
| + DialogResult dialog_result_ = DialogResult::OK;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FakeIt2MeDialogFactory);
|
| +};
|
| +
|
| +FakeIt2MeDialogFactory::FakeIt2MeDialogFactory()
|
| + : remote_user_email_(kTestClientUserName) {}
|
| +
|
| +FakeIt2MeDialogFactory::~FakeIt2MeDialogFactory() {}
|
| +
|
| +std::unique_ptr<It2MeConfirmationDialog> FakeIt2MeDialogFactory::Create() {
|
| + EXPECT_FALSE(remote_user_email_.empty());
|
| + return base::MakeUnique<FakeIt2MeConfirmationDialog>(remote_user_email_,
|
| + dialog_result_);
|
| +}
|
| +
|
| class It2MeHostTest : public testing::Test, public It2MeHost::Observer {
|
| public:
|
| It2MeHostTest();
|
| @@ -114,14 +149,13 @@ class It2MeHostTest : public testing::Test, public It2MeHost::Observer {
|
| void DisconnectClient();
|
|
|
| ValidationResult validation_result_ = ValidationResult::SUCCESS;
|
| - std::string remote_user_email_;
|
|
|
| base::Closure state_change_callback_;
|
|
|
| It2MeHostState last_host_state_ = It2MeHostState::kDisconnected;
|
|
|
| // Used to set ConfirmationDialog behavior.
|
| - FakeIt2MeConfirmationDialog* dialog_ = nullptr;
|
| + FakeIt2MeDialogFactory* dialog_factory_ = nullptr;
|
|
|
| private:
|
| std::unique_ptr<base::MessageLoop> message_loop_;
|
| @@ -151,11 +185,12 @@ void It2MeHostTest::SetUp() {
|
| network_task_runner_ = host_context->network_task_runner();
|
| ui_task_runner_ = host_context->ui_task_runner();
|
|
|
| - dialog_ = new FakeIt2MeConfirmationDialog();
|
| + std::unique_ptr<FakeIt2MeDialogFactory> dialog_factory(
|
| + new FakeIt2MeDialogFactory());
|
| + dialog_factory_ = dialog_factory.get();
|
| it2me_host_ =
|
| - new It2MeHost(std::move(host_context),
|
| - /*policy_watcher=*/nullptr, base::WrapUnique(dialog_),
|
| - weak_factory_.GetWeakPtr(),
|
| + new It2MeHost(std::move(host_context), /*policy_watcher=*/nullptr,
|
| + std::move(dialog_factory), weak_factory_.GetWeakPtr(),
|
| base::WrapUnique(new FakeSignalStrategy("fake_local_jid")),
|
| "fake_user_name", "fake_bot_jid");
|
| }
|
| @@ -170,7 +205,6 @@ void It2MeHostTest::TearDown() {
|
| void It2MeHostTest::OnValidationComplete(const base::Closure& resume_callback,
|
| ValidationResult validation_result) {
|
| validation_result_ = validation_result;
|
| - remote_user_email_ = dialog_->get_remote_user_email();
|
|
|
| ui_task_runner_->PostTask(FROM_HERE, resume_callback);
|
| }
|
| @@ -267,6 +301,7 @@ TEST_F(It2MeHostTest, ConnectionValidation_NoClientDomainPolicy_InvalidJid) {
|
| TEST_F(It2MeHostTest,
|
| ConnectionValidation_NoClientDomainPolicy_InvalidUsername) {
|
| SimulateClientConnection();
|
| + dialog_factory_->set_remote_user_email("fake");
|
| RunValidationCallback(kTestClientJidWithSlash);
|
| ASSERT_EQ(ValidationResult::SUCCESS, validation_result_);
|
| ASSERT_EQ(It2MeHostState::kConnecting, last_host_state_);
|
| @@ -341,20 +376,18 @@ TEST_F(It2MeHostTest, ConnectionValidation_ConfirmationDialog_Accept) {
|
| SimulateClientConnection();
|
| RunValidationCallback(kTestClientJid);
|
| ASSERT_EQ(ValidationResult::SUCCESS, validation_result_);
|
| - ASSERT_STREQ(kTestClientUserName, remote_user_email_.c_str());
|
| ASSERT_EQ(It2MeHostState::kConnecting, last_host_state_);
|
| DisconnectClient();
|
| ASSERT_EQ(It2MeHostState::kDisconnected, last_host_state_);
|
| }
|
|
|
| TEST_F(It2MeHostTest, ConnectionValidation_ConfirmationDialog_Reject) {
|
| - dialog_->set_dialog_result(DialogResult::CANCEL);
|
| + dialog_factory_->set_dialog_result(DialogResult::CANCEL);
|
| SimulateClientConnection();
|
| RunValidationCallback(kTestClientJid);
|
| ASSERT_EQ(ValidationResult::ERROR_REJECTED_BY_USER, validation_result_);
|
| RunUntilStateChanged(It2MeHostState::kDisconnected);
|
| ASSERT_EQ(It2MeHostState::kDisconnected, last_host_state_);
|
| - ASSERT_STREQ(kTestClientUserName, remote_user_email_.c_str());
|
| }
|
|
|
| TEST_F(It2MeHostTest, MultipleConnectionsTriggerDisconnect) {
|
| @@ -362,7 +395,6 @@ TEST_F(It2MeHostTest, MultipleConnectionsTriggerDisconnect) {
|
| RunValidationCallback(kTestClientJid);
|
| ASSERT_EQ(ValidationResult::SUCCESS, validation_result_);
|
| ASSERT_EQ(It2MeHostState::kConnecting, last_host_state_);
|
| - ASSERT_STREQ(kTestClientUserName, remote_user_email_.c_str());
|
|
|
| RunValidationCallback(kTestClientJid2);
|
| ASSERT_EQ(ValidationResult::ERROR_TOO_MANY_CONNECTIONS, validation_result_);
|
|
|