Skip to content

Instantly share code, notes, and snippets.

@adamwiggins
Created April 19, 2010 06:28
Show Gist options
  • Save adamwiggins/370796 to your computer and use it in GitHub Desktop.
Save adamwiggins/370796 to your computer and use it in GitHub Desktop.
UnitTest.begin("Buffer")
UnitTest.test("text", function() {
var input = "1\n2\n3\n"
buf = new Buffer(input)
assertEqual(input, buf.text())
})
UnitTest.test("insert", function() {
buf = new Buffer('def')
buf.insert(1, 0, "[insert]")
assertEqual("d[insert]ef", buf.text())
})
UnitTest.test("insert - within one line", function() {
buf = new Buffer('123')
var [ x, y ] = buf.insert(1, 0, 'x')
assertEqual("1x23", buf.text())
assertEqual(2, x)
assertEqual(0, y)
})
UnitTest.test("insert - multiline interrupting the current line", function() {
buf = new Buffer('123')
var [ x, y ] = buf.insert(1, 0, 'x\ny')
assertEqual("1x\ny23", buf.text())
assertEqual(1, x)
assertEqual(1, y)
})
UnitTest.test("deleteText - fragment of a single line", function() {
buf = new Buffer('abcdef')
buf.deleteText(1, 0, 5, 0)
assertEqual("af", buf.text())
})
UnitTest.test("deleteText - multiline with no fragmentary lines", function() {
buf = new Buffer('one\ntwo\nthree\n')
buf.deleteText(0, 1, 0, 2)
assertEqual("one\nthree\n", buf.text())
})
UnitTest.test("deleteText - multiline with leading fragment", function() {
buf = new Buffer('one\ntwo\nthree\n')
buf.deleteText(1, 0, 0, 2)
assertEqual("othree\n", buf.text())
})
UnitTest.test("deleteText - multiline with trailing fragment", function() {
buf = new Buffer('one\ntwo\nthree\n')
buf.deleteText(0, 1, 1, 2)
assertEqual("one\nhree\n", buf.text())
})
UnitTest.test("deleteText - multiline with fragments on both sides", function() {
buf = new Buffer('one\ntwo\nthree\n')
buf.deleteText(1, 0, 1, 2)
assertEqual("ohree\n", buf.text())
})
UnitTest.test("textFragment - single line", function() {
buf = new Buffer('abcdef')
assertEqual("bc", buf.textFragment(1, 0, 3, 0))
})
UnitTest.test("textFragment - entire line without newline", function() {
buf = new Buffer('a\nb\n')
assertEqual("b", buf.textFragment(0, 1, 1, 1))
})
UnitTest.test("textFragment - multiline", function() {
buf = new Buffer('a\nb\nc')
assertEqual("b\n", buf.textFragment(0, 1, 0, 2))
})
UnitTest.test("textFragment - multiline with a fragment", function() {
buf = new Buffer('a\nb\nc')
assertEqual("b\nc", buf.textFragment(0, 1, 1, 2))
})
UnitTest.test("html", function() {
buf = new Buffer('one\ntwo')
assertEqual('<div line="0">one</div><div line="1">two</div>', buf.html())
})
UnitTest.end()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment