blob: 95e3b1be6ab091882008e40eec1623845448dba2 [file] [log] [blame]
// Copyright (c) 2012 The Chromium 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 "base/strings/string_util.h"
#include "chrome/browser/extensions/api/serial/serial_port_enumerator.h"
#include "chrome/common/extensions/extension_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
TEST(SerialPortEnumeratorTest, ValidPortNamePatterns) {
#if defined(OS_WIN)
// TODO(miket): implement
#else
const extensions::SerialPortEnumerator::StringSet port_patterns(
extensions::SerialPortEnumerator::GenerateValidPatterns());
const char *kValidNames[] = {
"/dev/867serial5309",
"/dev/tty.usbmodem999999",
"/dev/ttyACM0",
"/dev/xxxxxmodemxxxxxxxxxx",
};
for (size_t i = 0; i < arraysize(kValidNames); ++i) {
std::set<std::string>::const_iterator j = port_patterns.begin();
for (; j != port_patterns.end(); ++j) {
if (MatchPattern(kValidNames[i], *j)) {
break;
}
}
EXPECT_TRUE(j != port_patterns.end()) << kValidNames[i] <<
" should have matched at least one pattern";
}
#endif
}
TEST(SerialPortEnumeratorTest, InvalidPortNamePatterns) {
#if defined(OS_WIN)
#else
const extensions::SerialPortEnumerator::StringSet port_patterns(
extensions::SerialPortEnumerator::GenerateValidPatterns());
const char *kInvalidNames[] = {
"",
".",
"..",
"//COM0",
"/dev/../home/you/your_secrets",
"/dev/cdrom",
"/dev/laserbeam",
"/home/you/your_secrets",
"/proc/cpuinfo",
"COM0",
"\\\\COM0",
"modem",
"serial",
"tty",
};
for (size_t i = 0; i < arraysize(kInvalidNames); ++i) {
std::set<std::string>::const_iterator j = port_patterns.begin();
for (; j != port_patterns.end(); ++j)
EXPECT_FALSE(MatchPattern(kInvalidNames[i], *j)) <<
kInvalidNames[i] << " should not have matched " << *j;
}
#endif
}