1 // Copyright 2014 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 "mojo/public/cpp/bindings/string.h" 6 #include "testing/gtest/include/gtest/gtest.h" 7 8 namespace mojo { 9 namespace test { 10 11 TEST(StringTest, DefaultIsNull) { 12 String s; 13 EXPECT_TRUE(s.is_null()); 14 } 15 16 TEST(StringTest, ConstructedWithNULL) { 17 String s(NULL); 18 EXPECT_TRUE(s.is_null()); 19 } 20 21 TEST(StringTest, ConstructedWithNullCharPointer) { 22 const char* null = NULL; 23 String s(null); 24 EXPECT_TRUE(s.is_null()); 25 } 26 27 TEST(StringTest, AssignedNULL) { 28 String s(""); 29 EXPECT_FALSE(s.is_null()); 30 s = NULL; 31 EXPECT_TRUE(s.is_null()); 32 } 33 34 TEST(StringTest, Empty) { 35 String s(""); 36 EXPECT_FALSE(s.is_null()); 37 EXPECT_TRUE(s.get().empty()); 38 } 39 40 TEST(StringTest, Basic) { 41 String s("hello world"); 42 EXPECT_EQ(std::string("hello world"), s.get()); 43 } 44 45 TEST(StringTest, Assignment) { 46 String s("hello world"); 47 String t = s; // Makes a copy. 48 EXPECT_FALSE(t.is_null()); 49 EXPECT_EQ(std::string("hello world"), t.get()); 50 EXPECT_FALSE(s.is_null()); 51 } 52 53 TEST(StringTest, Equality) { 54 String s("hello world"); 55 String t("hello world"); 56 EXPECT_EQ(s, t); 57 EXPECT_TRUE(s == t); 58 EXPECT_TRUE("hello world" == s); 59 EXPECT_TRUE(s == "hello world"); 60 EXPECT_TRUE("not" != s); 61 EXPECT_TRUE(s != "not"); 62 } 63 64 } // namespace test 65 } // namespace mojo 66