1 // 2 // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 #include "gtest/gtest.h" 8 9 #include "Token.h" 10 11 TEST(TokenTest, DefaultConstructor) 12 { 13 pp::Token token; 14 EXPECT_EQ(0, token.type); 15 EXPECT_EQ(0u, token.flags); 16 EXPECT_EQ(0, token.location.line); 17 EXPECT_EQ(0, token.location.file); 18 EXPECT_EQ("", token.text); 19 } 20 21 TEST(TokenTest, Assignment) 22 { 23 pp::Token token; 24 token.type = 1; 25 token.flags = 1; 26 token.location.line = 1; 27 token.location.file = 1; 28 token.text.assign("foo"); 29 30 token = pp::Token(); 31 EXPECT_EQ(0, token.type); 32 EXPECT_EQ(0u, token.flags); 33 EXPECT_EQ(0, token.location.line); 34 EXPECT_EQ(0, token.location.file); 35 EXPECT_EQ("", token.text); 36 } 37 38 TEST(TokenTest, Equals) 39 { 40 pp::Token token; 41 EXPECT_TRUE(token.equals(pp::Token())); 42 43 token.type = 1; 44 EXPECT_FALSE(token.equals(pp::Token())); 45 token.type = 0; 46 47 token.flags = 1; 48 EXPECT_FALSE(token.equals(pp::Token())); 49 token.flags = 0; 50 51 token.location.line = 1; 52 EXPECT_FALSE(token.equals(pp::Token())); 53 token.location.line = 0; 54 55 token.location.file = 1; 56 EXPECT_FALSE(token.equals(pp::Token())); 57 token.location.file = 0; 58 59 token.text.assign("foo"); 60 EXPECT_FALSE(token.equals(pp::Token())); 61 token.text.clear(); 62 63 EXPECT_TRUE(token.equals(pp::Token())); 64 } 65 66 TEST(TokenTest, HasLeadingSpace) 67 { 68 pp::Token token; 69 EXPECT_FALSE(token.hasLeadingSpace()); 70 token.setHasLeadingSpace(true); 71 EXPECT_TRUE(token.hasLeadingSpace()); 72 token.setHasLeadingSpace(false); 73 EXPECT_FALSE(token.hasLeadingSpace()); 74 } 75 76 TEST(TokenTest, Write) 77 { 78 pp::Token token; 79 token.text.assign("foo"); 80 std::stringstream out1; 81 out1 << token; 82 EXPECT_TRUE(out1.good()); 83 EXPECT_EQ("foo", out1.str()); 84 85 token.setHasLeadingSpace(true); 86 std::stringstream out2; 87 out2 << token; 88 EXPECT_TRUE(out2.good()); 89 EXPECT_EQ(" foo", out2.str()); 90 } 91