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