blob: 0d23d9f0c8e959e5deb18eaa34dc18a0ea8f172b [file] [log] [blame]
// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "shill/wifi_service.h"
#include <string>
#include <vector>
#include <base/string_util.h>
#include <chromeos/dbus/service_constants.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "shill/manager.h"
#include "shill/mock_adaptors.h"
#include "shill/mock_control.h"
#include "shill/mock_service.h"
#include "shill/mock_store.h"
#include "shill/property_store_unittest.h"
#include "shill/shill_event.h"
#include "shill/wifi.h"
using std::string;
using std::vector;
namespace shill {
class WiFiServiceTest : public PropertyStoreTest {
public:
WiFiServiceTest() {}
virtual ~WiFiServiceTest() {}
};
TEST_F(WiFiServiceTest, StorageId) {
vector<uint8_t> ssid(5, 0);
ssid.push_back(0xff);
WiFiServiceRefPtr wifi = new WiFiService(&control_interface_,
&dispatcher_,
&manager_,
NULL,
ssid,
flimflam::kModeManaged,
"none");
static const char fake_mac[] = "AaBBcCDDeeFF";
string id = wifi->GetStorageIdentifier(fake_mac);
for (uint i = 0; i < id.length(); ++i) {
EXPECT_TRUE(id[i] == '_' ||
isxdigit(id[i]) ||
(isalpha(id[i]) && islower(id[i])));
}
size_t mac_pos = id.find(StringToLowerASCII(string(fake_mac)));
EXPECT_NE(mac_pos, string::npos);
EXPECT_NE(id.find(string(flimflam::kModeManaged), mac_pos), string::npos);
}
} // namespace shill