Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/conflicts/module_database_impl_win.h" | |
| 6 | |
| 7 #include "base/message_loop/message_loop.h" | |
| 8 #include "chrome/browser/conflicts/module_database_win.h" | |
| 9 #include "testing/gtest/include/gtest/gtest.h" | |
| 10 | |
| 11 namespace { | |
| 12 | |
| 13 // Factory for mojom::ModuleEvents. | |
| 14 mojom::ModuleEventPtr ModuleEvent(mojom::ModuleEventType type, | |
| 15 const char* path, | |
| 16 uint64_t address, | |
| 17 uint32_t size) { | |
| 18 mojom::ModuleEvent event; | |
| 19 event.event_type = type; | |
| 20 event.module_path = std::string(path); | |
| 21 event.load_address = address; | |
| 22 event.size = size; | |
| 23 return event.Clone(); | |
| 24 } | |
| 25 | |
| 26 } // namespace | |
| 27 | |
| 28 class ModuleDatabaseImplTest : public testing::Test { | |
| 29 public: | |
| 30 ModuleDatabaseImplTest() | |
| 31 : message_loop_(new base::MessageLoop), | |
| 32 module_database_(new ::ModuleDatabase(message_loop_->task_runner())), | |
| 33 module_database_impl_(new ModuleDatabaseImpl(module_database_.get())) {} | |
| 34 | |
| 35 const ModuleDatabase::ModuleSet& modules() { | |
| 36 return module_database_->modules_; | |
| 37 } | |
| 38 | |
| 39 const ModuleDatabase::ProcessSet& processes() { | |
| 40 return module_database_->processes_; | |
| 41 } | |
| 42 | |
| 43 std::unique_ptr<base::MessageLoop> message_loop_; | |
|
sky
2016/12/14 21:58:08
protected:
chrisha
2016/12/19 20:15:36
Done.
| |
| 44 std::unique_ptr<ModuleDatabase> module_database_; | |
| 45 std::unique_ptr<ModuleDatabaseImpl> module_database_impl_; | |
| 46 }; | |
|
sky
2016/12/14 21:58:08
private: DISALLOW...
chrisha
2016/12/19 20:15:36
Done.
| |
| 47 | |
| 48 TEST_F(ModuleDatabaseImplTest, CallsForwardedAsExpected) { | |
| 49 EXPECT_EQ(module_database_.get(), module_database_impl_->module_database()); | |
| 50 EXPECT_EQ(0u, module_database_impl_->process_id()); | |
| 51 EXPECT_EQ(0u, modules().size()); | |
| 52 EXPECT_EQ(0u, processes().size()); | |
| 53 | |
| 54 module_database_impl_->OnProcessStarted(1234, content::PROCESS_TYPE_BROWSER); | |
| 55 EXPECT_EQ(1234u, module_database_impl_->process_id()); | |
| 56 EXPECT_EQ(0u, modules().size()); | |
| 57 EXPECT_EQ(1u, processes().size()); | |
| 58 | |
| 59 module_database_impl_->OnModuleEvent( | |
| 60 ModuleEvent(mojom::ModuleEventType::MODULE_LOADED, "dummy.dll", | |
| 61 0xBAADF00D, 20 * 4096)); | |
| 62 EXPECT_EQ(1u, modules().size()); | |
| 63 EXPECT_EQ(1u, processes().size()); | |
| 64 | |
| 65 module_database_impl_->OnProcessEnded(); | |
| 66 EXPECT_EQ(1u, modules().size()); | |
| 67 EXPECT_EQ(0u, processes().size()); | |
| 68 } | |
| OLD | NEW |