diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-16 00:18:37 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-16 00:18:37 +0100 |
commit | 87793f331c632ee527915805a0c92a94a534ba37 (patch) | |
tree | 3e747075d819c07c2b6b59982108f60a5d8b8159 /test/core/parser/stack/StackTest.cpp | |
parent | fbcdbd6ea539520826492501be87823bae1f475d (diff) |
Fixed problem with fieldEnd closing implicit fields and added unit test
Diffstat (limited to 'test/core/parser/stack/StackTest.cpp')
-rw-r--r-- | test/core/parser/stack/StackTest.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/test/core/parser/stack/StackTest.cpp b/test/core/parser/stack/StackTest.cpp index 321d471..59fdd59 100644 --- a/test/core/parser/stack/StackTest.cpp +++ b/test/core/parser/stack/StackTest.cpp @@ -602,7 +602,7 @@ TEST(Stack, errorFieldStartNoCommand) tracker.expect(0, 0, 0, 0, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc } -TEST(Stack, errorMutlipleFieldStarts) +TEST(Stack, errorMultipleFieldStarts) { tracker.reset(); logger.reset(); @@ -624,7 +624,7 @@ TEST(Stack, errorMutlipleFieldStarts) tracker.expect(1, 1, 1, 1, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc } -TEST(Stack, errorMutlipleFieldEnds) +TEST(Stack, errorMultipleFieldEnds) { tracker.reset(); logger.reset(); @@ -640,7 +640,7 @@ TEST(Stack, errorMutlipleFieldEnds) tracker.expect(1, 0, 1, 1, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc s.fieldEnd(); ASSERT_TRUE(logger.hasError()); - tracker.expect(1, 0, 1, 1, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc + tracker.expect(1, 1, 1, 1, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc } tracker.expect(1, 1, 1, 1, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc } @@ -661,6 +661,24 @@ TEST(Stack, errorOpenField) ASSERT_TRUE(logger.hasError()); tracker.expect(1, 1, 1, 1, 0, 0, 0); // sc, ec, fsc, fse, asc, aec, dc } + +TEST(Stack, fieldEndWhenImplicitDefaultFieldOpen) +{ + tracker.reset(); + logger.reset(); + + { + Stack s{env.context, States::AnyHandlers}; + s.command("a", {}); + s.fieldStart(true); + s.command("b", {}); + s.data("test"); + s.fieldEnd(); + tracker.expect(2, 2, 2, 2, 0, 0, 1); // sc, ec, fsc, fse, asc, aec, dc + } + ASSERT_FALSE(logger.hasError()); +} + } } |