diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b3a1f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.o +*.a +*.dSYM +.cproject +.project +config_parser +config_parser_test diff --git a/config_parser_test.cc b/config_parser_test.cc index 69113b2..2794f80 100644 --- a/config_parser_test.cc +++ b/config_parser_test.cc @@ -1,7 +1,20 @@ #include "gtest/gtest.h" #include "config_parser.h" +#include +#include -TEST(NginxConfigParserTest, SimpleConfig) { +class NginxStringConfigTest : public ::testing::Test { + protected: + bool ParseString(const std::string& config_string) { + std::stringstream config_stream(config_string); + return parser_.Parse(&config_stream, &config_); + } + + NginxConfigParser parser_; + NginxConfig config_; +}; + +TEST(NginxConfigParserTest, SimpleConfigFromFile) { NginxConfigParser parser; NginxConfig out_config; @@ -9,3 +22,27 @@ TEST(NginxConfigParserTest, SimpleConfig) { EXPECT_TRUE(success); } + +TEST(NginxConfigStatementTest, ToString) { + NginxConfigStatement statement; + statement.tokens_.push_back("foo"); + statement.tokens_.push_back("bar"); + + EXPECT_EQ("foo bar;\n", statement.ToString(0)); +} + +TEST_F(NginxStringConfigTest, SimpleTextConfig) { + EXPECT_TRUE(ParseString("foo bar;")); +} + +TEST_F(NginxStringConfigTest, SimpleBadTextConfig) { + EXPECT_FALSE(ParseString("foo bar")); +} + +TEST_F(NginxStringConfigTest, SimpleNestedConfig) { + EXPECT_TRUE(ParseString("foo { foo bar; }")); +} + +TEST_F(NginxStringConfigTest, DoubleNestedConfig) { + EXPECT_TRUE(ParseString("foo { foo { foo bar; } }")); +}