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

Side by Side Diff: chrome/browser/conflicts/module_database_impl_win_unittest.cc

Issue 2576843002: [win] Create ModuleDatabase and ModuleEventSinkImpl. (Closed)
Patch Set: Created 4 years 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 unified diff | Download patch
OLDNEW
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698