- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / serial / serial_port_enumerator_unittest.cc
1 // Copyright (c) 2012 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 "base/strings/string_util.h"
6 #include "chrome/browser/extensions/api/serial/serial_port_enumerator.h"
7 #include "chrome/common/extensions/extension_test_util.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 TEST(SerialPortEnumeratorTest, ValidPortNamePatterns) {
11 #if defined(OS_WIN)
12     // TODO(miket): implement
13 #else
14   const extensions::SerialPortEnumerator::StringSet port_patterns(
15       extensions::SerialPortEnumerator::GenerateValidPatterns());
16
17   const char *kValidNames[] = {
18     "/dev/867serial5309",
19     "/dev/tty.usbmodem999999",
20     "/dev/ttyACM0",
21     "/dev/xxxxxmodemxxxxxxxxxx",
22   };
23
24   for (size_t i = 0; i < arraysize(kValidNames); ++i) {
25     std::set<std::string>::const_iterator j = port_patterns.begin();
26     for (; j != port_patterns.end(); ++j) {
27       if (MatchPattern(kValidNames[i], *j)) {
28         break;
29       }
30     }
31     EXPECT_TRUE(j != port_patterns.end()) << kValidNames[i] <<
32         " should have matched at least one pattern";
33   }
34 #endif
35 }
36
37 TEST(SerialPortEnumeratorTest, InvalidPortNamePatterns) {
38 #if defined(OS_WIN)
39 #else
40   const extensions::SerialPortEnumerator::StringSet port_patterns(
41       extensions::SerialPortEnumerator::GenerateValidPatterns());
42
43   const char *kInvalidNames[] = {
44     "",
45     ".",
46     "..",
47     "//COM0",
48     "/dev/../home/you/your_secrets",
49     "/dev/cdrom",
50     "/dev/laserbeam",
51     "/home/you/your_secrets",
52     "/proc/cpuinfo",
53     "COM0",
54     "\\\\COM0",
55     "modem",
56     "serial",
57     "tty",
58   };
59
60   for (size_t i = 0; i < arraysize(kInvalidNames); ++i) {
61     std::set<std::string>::const_iterator j = port_patterns.begin();
62     for (; j != port_patterns.end(); ++j)
63       EXPECT_FALSE(MatchPattern(kInvalidNames[i], *j)) <<
64           kInvalidNames[i] << " should not have matched " << *j;
65   }
66 #endif
67 }