diff options
Diffstat (limited to 'vendor/github.com/tdewolff/minify/html/buffer_test.go')
-rw-r--r-- | vendor/github.com/tdewolff/minify/html/buffer_test.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/minify/html/buffer_test.go b/vendor/github.com/tdewolff/minify/html/buffer_test.go new file mode 100644 index 0000000..a220aff --- /dev/null +++ b/vendor/github.com/tdewolff/minify/html/buffer_test.go @@ -0,0 +1,37 @@ +package html // import "github.com/tdewolff/minify/html" + +import ( + "bytes" + "testing" + + "github.com/tdewolff/parse/html" + "github.com/tdewolff/test" +) + +func TestBuffer(t *testing.T) { + // 0 12 3 45 6 7 8 9 0 + s := `<p><a href="//url">text</a>text<!--comment--></p>` + z := NewTokenBuffer(html.NewLexer(bytes.NewBufferString(s))) + + tok := z.Shift() + test.That(t, tok.Hash == html.P, "first token is <p>") + test.That(t, z.pos == 0, "shift first token and restore position") + test.That(t, len(z.buf) == 0, "shift first token and restore length") + + test.That(t, z.Peek(2).Hash == html.Href, "third token is href") + test.That(t, z.pos == 0, "don't change position after peeking") + test.That(t, len(z.buf) == 3, "two tokens after peeking") + + test.That(t, z.Peek(8).Hash == html.P, "ninth token is <p>") + test.That(t, z.pos == 0, "don't change position after peeking") + test.That(t, len(z.buf) == 9, "nine tokens after peeking") + + test.That(t, z.Peek(9).TokenType == html.ErrorToken, "tenth token is an error") + test.That(t, z.Peek(9) == z.Peek(10), "tenth and eleventh tokens are EOF") + test.That(t, len(z.buf) == 10, "ten tokens after peeking") + + _ = z.Shift() + tok = z.Shift() + test.That(t, tok.Hash == html.A, "third token is <a>") + test.That(t, z.pos == 2, "don't change position after peeking") +} |