xref: /aosp_15_r20/external/libchrome/dbus/string_util_unittest.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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 "dbus/string_util.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7 
8 namespace dbus {
9 
TEST(StringUtilTest,IsValidObjectPath)10 TEST(StringUtilTest, IsValidObjectPath) {
11   EXPECT_TRUE(IsValidObjectPath("/"));
12   EXPECT_TRUE(IsValidObjectPath("/foo/bar"));
13   EXPECT_TRUE(IsValidObjectPath("/hoge_fuga/piyo123"));
14   // Empty string.
15   EXPECT_FALSE(IsValidObjectPath(std::string()));
16   // Empty element.
17   EXPECT_FALSE(IsValidObjectPath("//"));
18   EXPECT_FALSE(IsValidObjectPath("/foo//bar"));
19   EXPECT_FALSE(IsValidObjectPath("/foo///bar"));
20   // Trailing '/'.
21   EXPECT_FALSE(IsValidObjectPath("/foo/"));
22   EXPECT_FALSE(IsValidObjectPath("/foo/bar/"));
23   // Not beginning with '/'.
24   EXPECT_FALSE(IsValidObjectPath("foo/bar"));
25   // Invalid characters.
26   EXPECT_FALSE(IsValidObjectPath("/foo.bar"));
27   EXPECT_FALSE(IsValidObjectPath("/foo/*"));
28   EXPECT_FALSE(IsValidObjectPath("/foo/bar(1)"));
29 }
30 
31 }  // namespace dbus
32