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
8namespace dbus {
9
10TEST(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