15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "dbus/string_util.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace dbus { 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(StringUtilTest, IsValidObjectPath) { 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(IsValidObjectPath("/")); 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(IsValidObjectPath("/foo/bar")); 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_TRUE(IsValidObjectPath("/hoge_fuga/piyo123")); 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Empty string. 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath(std::string())); 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Empty element. 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("//")); 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo//bar")); 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo///bar")); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Trailing '/'. 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo/")); 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo/bar/")); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Not beginning with '/'. 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("foo/bar")); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Invalid characters. 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo.bar")); 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo/*")); 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) EXPECT_FALSE(IsValidObjectPath("/foo/bar(1)")); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace dbus 32