blob: d0725b5ead6f69bb488e45bc93345255f0c18bff [file] [log] [blame]
Peter Qiuc0beca52015-09-03 11:25:46 -07001//
2// Copyright (C) 2013 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
Paul Stewartbe9abfd2013-04-22 12:18:48 -070016
Ben Chan87602512014-11-07 20:50:05 -080017#include "shill/ethernet/ethernet_eap_service.h"
Paul Stewartbe9abfd2013-04-22 12:18:48 -070018
19#include <base/bind.h>
Samuel Tan289a5a52015-09-21 11:35:20 -070020#if defined(__ANDROID__)
21#include <dbus/service_constants.h>
22#else
Paul Stewartbe9abfd2013-04-22 12:18:48 -070023#include <chromeos/dbus/service_constants.h>
Samuel Tan289a5a52015-09-21 11:35:20 -070024#endif // __ANDROID__
Paul Stewartbe9abfd2013-04-22 12:18:48 -070025#include <gtest/gtest.h>
26
Ben Chan87602512014-11-07 20:50:05 -080027#include "shill/ethernet/mock_ethernet_eap_provider.h"
mukesh agrawalbebf1b82013-04-23 15:06:33 -070028#include "shill/mock_adaptors.h"
Paul Stewartbe9abfd2013-04-22 12:18:48 -070029#include "shill/mock_control.h"
Paul Stewartbe9abfd2013-04-22 12:18:48 -070030#include "shill/mock_event_dispatcher.h"
31#include "shill/mock_manager.h"
32#include "shill/mock_metrics.h"
mukesh agrawalbebf1b82013-04-23 15:06:33 -070033#include "shill/service_property_change_test.h"
Paul Stewartbe9abfd2013-04-22 12:18:48 -070034#include "shill/technology.h"
35
36using testing::Return;
37
38namespace shill {
39
40class EthernetEapServiceTest : public testing::Test {
41 public:
42 EthernetEapServiceTest()
43 : metrics_(&dispatcher_),
mukesh agrawalbad1c102015-09-18 16:15:08 -070044 manager_(&control_, &dispatcher_, &metrics_),
Paul Stewartbe9abfd2013-04-22 12:18:48 -070045 service_(new EthernetEapService(&control_,
46 &dispatcher_,
47 &metrics_,
48 &manager_)) {}
49 virtual ~EthernetEapServiceTest() {}
50
51 protected:
Paul Stewart7e779d82015-06-16 13:13:10 -070052 ServiceMockAdaptor* GetAdaptor() {
Alex Vakulenkofa1eb722015-12-21 12:22:17 -080053 return static_cast<ServiceMockAdaptor*>(service_->adaptor());
mukesh agrawalbebf1b82013-04-23 15:06:33 -070054 }
55
Paul Stewartbe9abfd2013-04-22 12:18:48 -070056 MockControl control_;
57 MockEventDispatcher dispatcher_;
58 MockMetrics metrics_;
59 MockManager manager_;
60 MockEthernetEapProvider provider_;
61 scoped_refptr<EthernetEapService> service_;
62};
63
64TEST_F(EthernetEapServiceTest, MethodOverrides) {
Ben Chanf8a2ce12014-09-30 14:42:59 -070065 EXPECT_EQ("/", service_->GetDeviceRpcId(nullptr));
Paul Stewartbe9abfd2013-04-22 12:18:48 -070066 EXPECT_EQ("etherneteap_all", service_->GetStorageIdentifier());
67 EXPECT_EQ(Technology::kEthernetEap, service_->technology());
68 EXPECT_TRUE(service_->Is8021x());
69 EXPECT_FALSE(service_->IsVisible());
70}
71
72TEST_F(EthernetEapServiceTest, OnEapCredentialsChanged) {
Rebecca Silbersteinb6df8b12014-07-10 16:07:08 -070073 service_->has_ever_connected_ = true;
74 EXPECT_TRUE(service_->has_ever_connected());
Paul Stewartbe9abfd2013-04-22 12:18:48 -070075 EXPECT_CALL(manager_, ethernet_eap_provider()).WillOnce(Return(&provider_));
76 EXPECT_CALL(provider_, OnCredentialsChanged());
Rebecca Silberstein57776902014-09-15 21:43:02 -070077 service_->OnEapCredentialsChanged(Service::kReasonPropertyUpdate);
Rebecca Silbersteinb6df8b12014-07-10 16:07:08 -070078 EXPECT_FALSE(service_->has_ever_connected());
Paul Stewartbe9abfd2013-04-22 12:18:48 -070079}
80
81TEST_F(EthernetEapServiceTest, OnEapCredentialPropertyChanged) {
82 EXPECT_CALL(manager_, ethernet_eap_provider()).WillOnce(Return(&provider_));
83 EXPECT_CALL(provider_, OnCredentialsChanged());
Ben Chan783f00b2013-09-20 13:50:34 -070084 service_->OnPropertyChanged(kEapPasswordProperty);
Paul Stewartbe9abfd2013-04-22 12:18:48 -070085}
86
87TEST_F(EthernetEapServiceTest, Unload) {
88 EXPECT_CALL(manager_, ethernet_eap_provider()).WillOnce(Return(&provider_));
89 EXPECT_CALL(provider_, OnCredentialsChanged());
90 EXPECT_FALSE(service_->Unload());
91}
92
mukesh agrawalbebf1b82013-04-23 15:06:33 -070093TEST_F(EthernetEapServiceTest, PropertyChanges) {
94 TestCommonPropertyChanges(service_, GetAdaptor());
95}
96
97// Custom property setters should return false, and make no changes, if
98// the new value is the same as the old value.
99TEST_F(EthernetEapServiceTest, CustomSetterNoopChange) {
100 TestCustomSetterNoopChange(service_, &manager_);
101}
102
Paul Stewartbe9abfd2013-04-22 12:18:48 -0700103} // namespace shill