summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/java_tokens.cc56
1 files changed, 54 insertions, 2 deletions
diff --git a/test/java_tokens.cc b/test/java_tokens.cc
index 1c69196..cb1ae73 100644
--- a/test/java_tokens.cc
+++ b/test/java_tokens.cc
@@ -29,7 +29,7 @@ TEST_P(JavaTokens, empty_class) {
java::TokensConfig{.version = GetParam()});
auto ret = tokens->read();
ASSERT_TRUE(ret.has_value());
- EXPECT_EQ(java::Token::Type::kKeyword, ret->type);
+ EXPECT_EQ(java::Token::Type::kReservedKeyword, ret->type);
EXPECT_EQ("class", ret->str);
EXPECT_EQ(1, ret->loc.line);
EXPECT_EQ(0, ret->loc.column);
@@ -602,5 +602,57 @@ TEST_P(JavaTokens, null) {
EXPECT_EQ(io::ReadError::Eof, ret.error());
}
+TEST_P(JavaTokens, textblock) {
+ auto input = io::memory(R"(String html = """
+ <html>
+ <body>
+ <p>Hello, world</p>
+ </body>
+ </html>
+ """;)");
+ auto tokens = java::open(std::move(input), make_errors(),
+ java::TokensConfig{.version = GetParam()});
+
+ auto ret = tokens->read();
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kIdentifier, ret->type);
+ EXPECT_EQ("String", ret->str);
+ ret = tokens->read();
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kIdentifier, ret->type);
+ EXPECT_EQ("html", ret->str);
+ ret = tokens->read();
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kOperator, ret->type);
+ EXPECT_EQ("=", ret->str);
+ ret = tokens->read();
+ if (std::to_underlying(GetParam()) >= 15) {
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kLiteralString, ret->type);
+ EXPECT_EQ(R"(<html>
+ <body>
+ <p>Hello, world</p>
+ </body>
+</html>
+)",
+ ret->str);
+ ret = tokens->read();
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kSeparator, ret->type);
+ EXPECT_EQ(";", ret->str);
+ ret = tokens->read();
+ ASSERT_FALSE(ret.has_value());
+ EXPECT_EQ(io::ReadError::Eof, ret.error());
+ } else {
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kLiteralString, ret->type);
+ EXPECT_EQ("", ret->str);
+ ret = tokens->read();
+ ASSERT_TRUE(ret.has_value());
+ EXPECT_EQ(java::Token::Type::kError, ret->type);
+ }
+}
+
INSTANTIATE_TEST_SUITE_P(AllVersions, JavaTokens,
- testing::Values(java::Version::kJava8));
+ testing::Values(java::Version::kJava8,
+ java::Version::kJava21));