| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/update_client/action_runner.h" |
| |
| #include <string> |
| |
| #include "base/functional/callback_helpers.h" |
| #include "base/run_loop.h" |
| #include "base/test/bind.h" |
| #include "base/test/task_environment.h" |
| #include "components/update_client/test_installer.h" |
| #include "components/update_client/update_client.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace update_client { |
| |
| namespace { |
| |
| class FakeActionHandler : public ActionHandler { |
| public: |
| void Handle(const base::FilePath& action, |
| const std::string& session_id, |
| Callback callback) override { |
| ran_ = true; |
| std::move(callback).Run(true, 0, 0); |
| } |
| |
| bool ran() const { return ran_; } |
| |
| private: |
| ~FakeActionHandler() override = default; |
| |
| bool ran_ = false; |
| }; |
| |
| } // namespace |
| |
| TEST(ActionRunnerTest, ErrorOnMissingPath) { |
| base::test::TaskEnvironment task_environment; |
| bool success = false; |
| auto handler = base::MakeRefCounted<FakeActionHandler>(); |
| base::RunLoop runloop; |
| RunAction(handler, base::MakeRefCounted<TestInstaller>(), "file", "sid", |
| base::DoNothing(), base::DoNothing(), |
| base::BindLambdaForTesting( |
| [&](bool succeeded, int error_code, int extra_code1) { |
| success = succeeded; |
| runloop.Quit(); |
| })); |
| runloop.Run(); |
| ASSERT_FALSE(success); |
| ASSERT_FALSE(handler->ran()); |
| } |
| |
| } // namespace update_client |