15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2012 Apple Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THE POSSIBILITY OF SUCH DAMAGE. 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "config.h" 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "wtf/text/CString.h" 2953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include <gtest/gtest.h> 3053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 3153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)namespace { 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST(WTF, CStringNullStringConstructor) 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString string; 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_TRUE(string.isNull()); 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(string.data(), static_cast<const char*>(0)); 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(string.length(), static_cast<size_t>(0)); 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString stringFromCharPointer(static_cast<const char*>(0)); 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_TRUE(stringFromCharPointer.isNull()); 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringFromCharPointer.data(), static_cast<const char*>(0)); 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringFromCharPointer.length(), static_cast<size_t>(0)); 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString stringFromCharAndLength(static_cast<const char*>(0), 0); 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_TRUE(stringFromCharAndLength.isNull()); 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringFromCharAndLength.data(), static_cast<const char*>(0)); 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringFromCharAndLength.length(), static_cast<size_t>(0)); 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST(WTF, CStringEmptyEmptyConstructor) 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const char* emptyString = ""; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString string(emptyString); 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_FALSE(string.isNull()); 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(string.length(), static_cast<size_t>(0)); 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(string.data()[0], 0); 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString stringWithLength(emptyString, 0); 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_FALSE(stringWithLength.isNull()); 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringWithLength.length(), static_cast<size_t>(0)); 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringWithLength.data()[0], 0); 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST(WTF, CStringEmptyRegularConstructor) 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const char* referenceString = "WebKit"; 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString string(referenceString); 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_FALSE(string.isNull()); 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(string.length(), strlen(referenceString)); 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_STREQ(referenceString, string.data()); 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString stringWithLength(referenceString, 6); 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_FALSE(stringWithLength.isNull()); 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringWithLength.length(), strlen(referenceString)); 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_STREQ(referenceString, stringWithLength.data()); 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST(WTF, CStringUninitializedConstructor) 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) char* buffer; 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString emptyString = CString::newUninitialized(0, buffer); 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_FALSE(emptyString.isNull()); 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(buffer, emptyString.data()); 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(buffer[0], 0); 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const size_t length = 25; 895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString uninitializedString = CString::newUninitialized(length, buffer); 905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_FALSE(uninitializedString.isNull()); 915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(buffer, uninitializedString.data()); 925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(uninitializedString.data()[length], 0); 935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST(WTF, CStringZeroTerminated) 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const char* referenceString = "WebKit"; 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString stringWithLength(referenceString, 3); 995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_EQ(stringWithLength.data()[3], 0); 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)TEST(WTF, CStringCopyOnWrite) 1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const char* initialString = "Webkit"; 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString string(initialString); 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CString copy = string; 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) string.mutableData()[3] = 'K'; 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_TRUE(string != copy); 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_STREQ(string.data(), "WebKit"); 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) ASSERT_STREQ(copy.data(), initialString); 1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 113926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 114926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)TEST(WTF, CStringComparison) 115926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles){ 116926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) // Comparison with another CString. 117926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) CString a; 118926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) CString b; 119926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a == b); 120926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a != b); 121926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = "a"; 122926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = CString(); 123926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a == b); 124926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a != b); 125926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = "a"; 126926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = "b"; 127926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a == b); 128926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a != b); 129926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = "a"; 130926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = "a"; 131926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a == b); 132926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a != b); 133926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = "a"; 134926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = "aa"; 135926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a == b); 136926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a != b); 137926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = ""; 138926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = ""; 139926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a == b); 140926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a != b); 141926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = ""; 142926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = CString(); 143926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a == b); 144926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a != b); 145926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) a = "a"; 146926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) b = ""; 147926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(a == b); 148926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(a != b); 149926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 150926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) // Comparison with a const char*. 151926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) CString c; 152926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) const char* d = 0; 153926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c == d); 154926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c != d); 155926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = "c"; 156926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = 0; 157926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 158926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 159926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = CString(); 160926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = "d"; 161926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 162926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 163926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = "c"; 164926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = "d"; 165926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 166926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 167926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = "c"; 168926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = "c"; 169926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c == d); 170926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c != d); 171926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = "c"; 172926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = "cc"; 173926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 174926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 175926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = "cc"; 176926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = "c"; 177926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 178926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 179926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = ""; 180926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = ""; 181926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c == d); 182926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c != d); 183926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = ""; 184926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = 0; 185926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 186926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 187926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = CString(); 188926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = ""; 189926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 190926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 191926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = "a"; 192926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = ""; 193926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 194926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 195926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) c = ""; 196926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) d = "b"; 197926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_FALSE(c == d); 198926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ASSERT_TRUE(c != d); 199926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)} 20053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 20153e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)} // namespace 202