| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Unit tests for EventsFunnel. | 5 // Unit tests for EventsFunnel. |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "ceee/ie/common/ceee_module_util.h" | 9 #include "ceee/ie/common/ceee_module_util.h" |
| 10 #include "ceee/ie/plugin/bho/events_funnel.h" | 10 #include "ceee/ie/plugin/bho/events_funnel.h" |
| 11 #include "ceee/testing/utils/mock_static.h" | 11 #include "ceee/testing/utils/mock_static.h" |
| 12 #include "gmock/gmock.h" | 12 #include "gmock/gmock.h" |
| 13 #include "gtest/gtest.h" | 13 #include "gtest/gtest.h" |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 | 16 |
| 17 using testing::StrEq; | 17 using testing::StrEq; |
| 18 | 18 |
| 19 MOCK_STATIC_CLASS_BEGIN(MockCeeeModuleUtils) | |
| 20 MOCK_STATIC_INIT_BEGIN(MockCeeeModuleUtils) | |
| 21 MOCK_STATIC_INIT2(ceee_module_util::FireEventToBroker, | |
| 22 FireEventToBroker); | |
| 23 MOCK_STATIC_INIT_END() | |
| 24 MOCK_STATIC2(void, , FireEventToBroker, const std::string&, | |
| 25 const std::string&); | |
| 26 MOCK_STATIC_CLASS_END(MockCeeeModuleUtils) | |
| 27 | |
| 28 // Test subclass used to provide access to protected functionality in the | 19 // Test subclass used to provide access to protected functionality in the |
| 29 // EventsFunnel class. | 20 // EventsFunnel class. |
| 30 class TestEventsFunnel : public EventsFunnel { | 21 class TestEventsFunnel : public EventsFunnel { |
| 31 public: | 22 public: |
| 32 TestEventsFunnel() : EventsFunnel(true) {} | |
| 33 | |
| 34 HRESULT CallSendEvent(const char* event_name, const Value& event_args) { | 23 HRESULT CallSendEvent(const char* event_name, const Value& event_args) { |
| 35 return SendEvent(event_name, event_args); | 24 return SendEvent(event_name, event_args); |
| 36 } | 25 } |
| 26 |
| 27 MOCK_METHOD2(SendEventToBroker, HRESULT(const char*, const char*)); |
| 37 }; | 28 }; |
| 38 | 29 |
| 39 TEST(EventsFunnelTest, SendEvent) { | 30 TEST(EventsFunnelTest, SendEvent) { |
| 40 TestEventsFunnel events_funnel; | 31 TestEventsFunnel events_funnel; |
| 41 MockCeeeModuleUtils mock_ceee_module; | |
| 42 | 32 |
| 43 static const char* kEventName = "MADness"; | 33 static const char* kEventName = "MADness"; |
| 44 DictionaryValue event_args; | 34 DictionaryValue event_args; |
| 45 event_args.SetInteger("Answer to the Ultimate Question of Life," | 35 event_args.SetInteger("Answer to the Ultimate Question of Life," |
| 46 "the Universe, and Everything", 42); | 36 "the Universe, and Everything", 42); |
| 47 event_args.SetString("AYBABTU", "All your base are belong to us"); | 37 event_args.SetString("AYBABTU", "All your base are belong to us"); |
| 48 event_args.SetReal("www.unrealtournament.com", 3.0); | 38 event_args.SetReal("www.unrealtournament.com", 3.0); |
| 49 | 39 |
| 50 ListValue args_list; | 40 ListValue args_list; |
| 51 args_list.Append(event_args.DeepCopy()); | 41 args_list.Append(event_args.DeepCopy()); |
| 52 | 42 |
| 53 std::string event_args_str; | 43 std::string event_args_str; |
| 54 base::JSONWriter::Write(&args_list, false, &event_args_str); | 44 base::JSONWriter::Write(&args_list, false, &event_args_str); |
| 55 | 45 |
| 56 EXPECT_CALL(mock_ceee_module, FireEventToBroker(StrEq(kEventName), | 46 EXPECT_CALL(events_funnel, SendEventToBroker(StrEq(kEventName), |
| 57 StrEq(event_args_str))).Times(1); | 47 StrEq(event_args_str))).Times(1); |
| 58 EXPECT_HRESULT_SUCCEEDED( | 48 EXPECT_HRESULT_SUCCEEDED( |
| 59 events_funnel.CallSendEvent(kEventName, event_args)); | 49 events_funnel.CallSendEvent(kEventName, event_args)); |
| 60 } | 50 } |
| 61 | 51 |
| 62 } // namespace | 52 } // namespace |
| OLD | NEW |