summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/fakevim/fakevim_test.cpp777
-rw-r--r--src/plugins/fakevim/fakevimplugin.h24
2 files changed, 393 insertions, 408 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp
index 6bdf31be44..5fcdd37918 100644
--- a/src/plugins/fakevim/fakevim_test.cpp
+++ b/src/plugins/fakevim/fakevim_test.cpp
@@ -49,28 +49,14 @@
* Tests after this macro will be skipped and warning printed.
* Uncomment it to test a feature -- if tests succeeds it should be removed from the test.
*/
-#define NOT_IMPLEMENTED return;
+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+# define NOT_IMPLEMENTED QSKIP("Not fully implemented!", SkipSingle);
+#else
+# define NOT_IMPLEMENTED QSKIP("Not fully implemented!");
+#endif
-// QTest::qSkip("Not fully implemented!", QTest::SkipSingle, __FILE__, __LINE__);
-// return;
-
-// Text cursor representation in comparisons (set empty to disable cursor position checking).
+// Text cursor representation in comparisons.
#define X "|"
-const QString cursorString(X);
-
-const QString testLines =
- /* 0 1 2 3 4 */
- /* 0123456789012345678901234567890123457890 */
- "\n"
- "#include <QtCore>\n"
- "#include <QtGui>\n"
- "\n"
- "int main(int argc, char *argv[])\n"
- "{\n"
- " QApplication app(argc, argv);\n"
- "\n"
- " return app.exec();\n"
- "}\n";
// More distinct line separator in code.
#define N "\n"
@@ -89,7 +75,7 @@ static const QString helpFormat =
LINE_START "%4" LINE_END;
// Compare document contents with a expectedText.
-// Also check cursor position if the expectedText contains cursorString.
+// Also check cursor position if the expectedText contains | chracter.
#define COMPARE(beforeText, beforePosition, afterText, afterPosition, expectedText, cmd) \
do { \
QString before(beforeText); \
@@ -97,7 +83,7 @@ static const QString helpFormat =
QString expected(expectedText); \
data.oldPosition = beforePosition; \
data.oldText = before; \
- if (!cursorString.isEmpty() && expected.contains(cursorString)) {\
+ if (expected.contains(X)) {\
before = textWithCursor(before, beforePosition); \
actual = textWithCursor(actual, afterPosition); \
} \
@@ -156,15 +142,41 @@ using namespace TextEditor;
static QString textWithCursor(const QString &text, int position)
{
- return (position == -1) ? text : (text.left(position) + cursorString + text.mid(position));
+ return (position == -1) ? text : (text.left(position) + X + text.mid(position));
}
static QString textWithCursor(const QString &text, const QTextBlock &block, int column)
{
const int pos = block.position() + qMin(column, qMax(0, block.length() - 2));
- return text.left(pos) + cursorString + text.mid(pos);
+ return text.left(pos) + X + text.mid(pos);
}
+const QString testLines =
+ /* 0 1 2 3 4 */
+ /* 0123456789012345678901234567890123457890 */
+ "\n"
+ "#include <QtCore>\n"
+ "#include <QtGui>\n"
+ "\n"
+ "int main(int argc, char *argv[])\n"
+ "{\n"
+ " QApplication app(argc, argv);\n"
+ "\n"
+ " return app.exec();\n"
+ "}\n";
+
+const QStringList l = testLines.split('\n');
+
+// Insert cursor char at pos, negative counts from back.
+static QString cursor(int line, int column)
+{
+ const int col = column >= 0 ? column : l[line].size() + column;
+ QStringList res = l.mid(0, line) << textWithCursor(l[line], col);
+ res.append(l.mid(line + 1));
+ return res.join("\n");
+}
+
+static QString lmid(int i, int n = -1) { return QStringList(l.mid(i, n)).join("\n"); }
// Data for tests containing BaseTextEditorWidget and FakeVimHAndler.
struct FakeVimPlugin::TestData
@@ -199,8 +211,8 @@ struct FakeVimPlugin::TestData
{
doKeys("<ESC>");
QString str = text;
- int i = str.indexOf(cursorString);
- if (!cursorString.isEmpty() && i != -1)
+ int i = str.indexOf(X);
+ if (i != -1)
str.remove(i, 1);
editor()->document()->setPlainText(str);
setPosition(i);
@@ -1860,14 +1872,14 @@ void FakeVimPlugin::test_vim_command_cc()
TestData data;
setup(&data);
- data.setText("|123" N "456" N "789" N "abc");
- KEYS("cc456<ESC>", "45|6" N "456" N "789" N "abc");
- KEYS("ccabc<Esc>", "ab|c" N "456" N "789" N "abc");
-// KEYS(".<Esc>", "ab|c" N "456" N "789" N "abc");
-// KEYS("j<Esc>", "abc" N "45|6" N "789" N "abc");
-// KEYS(".<Esc>", "abc" N "456" N "78|9" N "abc");
-// KEYS("kkk<Esc>", "ab|c" N "456" N "789" N "abc");
-// KEYS("3ccxyz<Esc>", "xy|z" N "abc");
+ data.setText( "|123" N "456" N "789" N "abc");
+ KEYS("cc456<ESC>", "45|6" N "456" N "789" N "abc");
+ KEYS("ccabc<Esc>", "ab|c" N "456" N "789" N "abc");
+ KEYS(".", "ab|c" N "456" N "789" N "abc");
+ KEYS("j", "abc" N "45|6" N "789" N "abc");
+ KEYS(".", "abc" N "ab|c" N "789" N "abc");
+ KEYS("kkk", "ab|c" N "abc" N "789" N "abc");
+ KEYS("3ccxyz<Esc>", "xy|z" N "abc");
}
void FakeVimPlugin::test_vim_command_cw()
@@ -1882,236 +1894,271 @@ void FakeVimPlugin::test_vim_command_cj()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("cj<Esc>", l[0]+"\n@" + "\n" + lmid(3));
-// KEYS("P", lmid(0,1)+"\n" + "@"+lmid(1,2)+"\n" + "\n" + lmid(3));
-// KEYS("u", l[0]+"\n@" + "\n" + lmid(3));
-// TestData data;
-// setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("cjabc<Esc>", l[0]+"\nab@c\n" + lmid(3));
-// KEYS("u", lmid(0,1)+"\n" + cursor(l[1], -1)+"\n" + lmid(2));
-// KEYS("gg", "@" + lmid(0));
-// KEYS(".", "ab@c\n" + lmid(2));
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("cj<Esc>", l[0]+"\n|" + "\n" + lmid(3));
+ KEYS("P", lmid(0,1)+"\n" + "|"+lmid(1,2)+"\n" + "\n" + lmid(3));
+ KEYS("u", l[0]+"\n|" + "\n" + lmid(3));
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("cjabc<Esc>", l[0]+"\nab|c\n" + lmid(3));
+ KEYS("u", cursor(2, 0));
+ KEYS("gg", cursor(0, 0));
+ KEYS(".", "ab|c\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_ck()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("ck<Esc>", "@\n" + lmid(2));
-// KEYS("P", "@" + lmid(0,2)+"\n" + "\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("ck<Esc>", "|\n" + lmid(2));
+ KEYS("P", "|" + lmid(0,2)+"\n" + "\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_c_dollar()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("$", cursor(l[1], -1));
-// KEYS("c$<Esc>", l[0]+"\n" + l[1].left(l[1].length()-2)+"@"+l[1][l[1].length()-2]+"\n" + lmid(2));
-// KEYS("c$<Esc>", l[0]+"\n" + l[1].left(l[1].length()-3)+"@"+l[1][l[1].length()-3]+"\n" + lmid(2));
-// KEYS("0c$abc<Esc>", l[0]+"\n" + "ab@c\n" + lmid(2));
-// KEYS("0c$abc<Esc>", l[0]+"\n" + "ab@c\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j", cursor(1, 0));
+ KEYS("$", cursor(1, -1));
+ KEYS("c$<Esc>", l[0]+"\n" + l[1].left(l[1].length()-2)+"|"+l[1][l[1].length()-2]+"\n" + lmid(2));
+ KEYS("c$<Esc>", l[0]+"\n" + l[1].left(l[1].length()-3)+"|"+l[1][l[1].length()-3]+"\n" + lmid(2));
+ KEYS("0c$abc<Esc>", l[0]+"\n" + "ab|c\n" + lmid(2));
+ KEYS("0c$abc<Esc>", l[0]+"\n" + "ab|c\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_C()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("Cabc<Esc>", l[0] + "\nab@c\n" + lmid(2));
-// KEYS("Cabc<Esc>", l[0] + "\nabab@c\n" + lmid(2));
-// KEYS("$Cabc<Esc>", l[0] + "\nababab@c\n" + lmid(2));
-// KEYS("0C<Esc>", l[0] + "\n@\n" + lmid(2));
-// KEYS("0Cabc<Esc>", l[0] + "\nab@c\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j", cursor(1, 0));
+ KEYS("Cabc<Esc>", l[0] + "\nab|c\n" + lmid(2));
+ KEYS("Cabc<Esc>", l[0] + "\nabab|c\n" + lmid(2));
+ KEYS("$Cabc<Esc>", l[0] + "\nababab|c\n" + lmid(2));
+ KEYS("0C<Esc>", l[0] + "\n|\n" + lmid(2));
+ KEYS("0Cabc<Esc>", l[0] + "\nab|c\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_dw()
{
TestData data;
setup(&data);
-// KEYS("dw", "@#include <QtCore>\n" + lmid(2));
-// KEYS("dw", "@include <QtCore>\n" + lmid(2));
-// KEYS("dw", "@<QtCore>\n" + lmid(2));
-// KEYS("dw", "@QtCore>\n" + lmid(2));
-// KEYS("dw", "@>\n" + lmid(2));
-// KEYS("dw", "@\n" + lmid(2)); // Real vim has this intermediate step, too
-// KEYKEYS("dw", "@#include <QtGui>\n" + lmid(3));
-// KEYS("dw", "@include <QtGui>\n" + lmid(3));
-// KEYS("dw", "@<QtGui>\n" + lmid(3));
-// KEYS("dw", "@QtGui>\n" + lmid(3));
-// KEYS("dw", "@>\n" + lmid(3));
+
+ data.setText(testLines);
+ KEYS("dw", "|#include <QtCore>\n" + lmid(2));
+ KEYS("dw", "|include <QtCore>\n" + lmid(2));
+ KEYS("dw", "|<QtCore>\n" + lmid(2));
+ KEYS("dw", "|QtCore>\n" + lmid(2));
+ KEYS("dw", "|>\n" + lmid(2));
+ KEYS("dw", "|\n" + lmid(2)); // Real vim has this intermediate step, too
+ KEYS("dw", "|#include <QtGui>\n" + lmid(3));
+ KEYS("dw", "|include <QtGui>\n" + lmid(3));
+ KEYS("dw", "|<QtGui>\n" + lmid(3));
+ KEYS("dw", "|QtGui>\n" + lmid(3));
+ KEYS("dw", "|>\n" + lmid(3));
}
void FakeVimPlugin::test_vim_command_dd()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("dd", l[0] + "\n@" + lmid(2));
-// KEYS(".", l[0] + "\n@" + lmid(3));
-// KEYS("3dd", l[0] + "\n @QApplication app(argc, argv);\n" + lmid(7));
-// KEYS("4l", l[0] + "\n QApp@lication app(argc, argv);\n" + lmid(7));
-// KEYS("dd", l[0] + "\n@" + lmid(7));
-// KEYS(".", l[0] + "\n @return app.exec();\n" + lmid(9));
-// KEYS("dd", l[0] + "\n@" + lmid(9));
+
+ data.setText(testLines);
+ KEYS("j", cursor(1, 0));
+ KEYS("dd", l[0] + "\n|" + lmid(2));
+ KEYS(".", l[0] + "\n|" + lmid(3));
+ KEYS("3dd", l[0] + "\n |QApplication app(argc, argv);\n" + lmid(7));
+ KEYS("4l", l[0] + "\n QApp|lication app(argc, argv);\n" + lmid(7));
+ KEYS("dd", l[0] + "\n|" + lmid(7));
+ KEYS(".", l[0] + "\n |return app.exec();\n" + lmid(9));
+ KEYS("dd", l[0] + "\n|" + lmid(9));
}
void FakeVimPlugin::test_vim_command_dd_2()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("dd", l[0] + "\n@" + lmid(2));
-// KEYS("p", l[0] + "\n" + l[2] + "\n@" + l[1] + "\n" + lmid(3));
-// KEYS("u", l[0] + "\n@" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j", cursor(1, 0));
+ KEYS("dd", l[0] + "\n|" + lmid(2));
+ KEYS("p", l[0] + "\n" + l[2] + "\n|" + l[1] + "\n" + lmid(3));
+ KEYS("u", l[0] + "\n|" + lmid(2));
}
void FakeVimPlugin::test_vim_command_d_dollar()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("$d$", l[0]+"\n" + l[1].left(l[1].length()-2)+"@"+l[1][l[1].length()-2]+"\n" + lmid(2));
-// KEYS("0d$", l[0] + "\n"+"@\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("$d$", l[0]+"\n" + l[1].left(l[1].length()-2)+"|"+l[1][l[1].length()-2]+"\n" + lmid(2));
+ KEYS("0d$", l[0] + "\n"+"|\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_dj()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("dj", l[0]+"\n@" + lmid(3));
-// KEYS("P", lmid(0,1)+"\n" + "@"+lmid(1));
-// KEYS("0", "@" + l[1]);
-// KEYS("dj", l[0]+"\n@" + lmid(3));
-// KEYS("P", lmid(0,1)+"\n" + "@"+lmid(1));
-// KEYS("05l", l[1].left(5) + "@" + l[1].mid(5));
-// KEYS("dj", l[0]+"\n@" + lmid(3));
-// KEYS("P", lmid(0,1)+"\n" + "@"+lmid(1));
-// KEYS("dj", l[0]+"\n@" + lmid(3));
-// KEYS("p", lmid(0,1)+"\n" + lmid(3,1)+"\n" + "@"+lmid(1,2)+"\n" + lmid(4));
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("dj", l[0]+"\n|" + lmid(3));
+ KEYS("P", lmid(0,1)+"\n" + "|"+lmid(1));
+ KEYS("0", lmid(0,1)+"\n" + "|"+lmid(1));
+ KEYS("dj", l[0]+"\n|" + lmid(3));
+ KEYS("P", lmid(0,1)+"\n" + "|"+lmid(1));
+ KEYS("05l", l[0]+"\n" + l[1].left(5) + "|" + l[1].mid(5)+"\n" + lmid(2));
+ KEYS("dj", l[0]+"\n|" + lmid(3));
+ KEYS("P", lmid(0,1)+"\n" + "|"+lmid(1));
+ KEYS("dj", l[0]+"\n|" + lmid(3));
+ KEYS("p", lmid(0,1)+"\n" + lmid(3,1)+"\n" + "|"+lmid(1,2)+"\n" + lmid(4));
}
void FakeVimPlugin::test_vim_command_dk()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("dk", "@" + lmid(2));
-// KEYS("P", "@" + lmid(0));
-// KEYS("j0", "@" + l[1]);
-// KEYS("dk", "@" + lmid(2));
-// KEYS("P", "@" + lmid(0));
-// KEYS("j05l", l[1].left(5) + "@" + l[1].mid(5));
-// KEYS("dk", "@" + lmid(2));
-// KEYS("P", "@" + lmid(0));
-// KEYS("j05l", l[1].left(5) + "@" + l[1].mid(5));
-// KEYS("dk", "@" + lmid(2));
-// KEYS("p", lmid(2,1)+"\n" + "@" + lmid(0,2)+"\n" + lmid(3));
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("dk", "|" + lmid(2));
+ KEYS("P", "|" + lmid(0));
+ KEYS("j0", l[0]+ "\n|" + lmid(1));
+ KEYS("dk", "|" + lmid(2));
+ KEYS("P", "|" + lmid(0));
+ KEYS("j05l", l[0]+"\n" + l[1].left(5) + "|" + l[1].mid(5)+"\n" + lmid(2));
+ KEYS("dk", "|" + lmid(2));
+ KEYS("P", "|" + lmid(0));
+ KEYS("j05l", l[0]+"\n" + l[1].left(5) + "|" + l[1].mid(5)+"\n" + lmid(2));
+ KEYS("dk", "|" + lmid(2));
+ KEYS("p", lmid(2,1)+"\n" + "|" + lmid(0,2)+"\n" + lmid(3));
}
void FakeVimPlugin::test_vim_command_dgg()
{
TestData data;
setup(&data);
-// KEYS("G", lmid(0, l.size()-2)+"\n" "@"+lmid(l.size()-2));
-// KEYS("dgg", "@");
-// KEYS("u", "@" + lmid(0));
+
+ data.setText(testLines);
+ KEYS("G", lmid(0, l.size()-2)+"\n" "|"+lmid(l.size()-2));
+ KEYS("dgg", "|");
+ KEYS("u", "|" + lmid(0));
}
void FakeVimPlugin::test_vim_command_dG()
{
TestData data;
setup(&data);
-// KEYS("dG", "@");
-// KEYS("u", "@" + lmid(0));
-// KEYS("j", "@" + l[1]);
-// KEYS("dG", lmid(0,1)+"\n" + "@");
-// KEYS("u", l[0]+"\n" + "@" + lmid(1));
-// KEYS("G", lmid(0, l.size()-2)+"\n" + "@"+lmid(l.size()-2));
-// qWarning("FIXME");
-//return;
-// // include movement to first column, as otherwise the result depends on the 'startofline' setting
-// KEYS("dG0", lmid(0, l.size()-2)+"\n" + "@"+lmid(l.size()-2,1));
-// KEYS("dG0", lmid(0, l.size()-3)+"\n" + "@"+lmid(l.size()-3,1));
+
+ data.setText(testLines);
+ KEYS("dG", "|");
+ KEYS("u", "|" + lmid(0));
+ KEYS("j", cursor(1, 0));
+ KEYS("dG", lmid(0,1)+"\n" + "|");
+ KEYS("u", l[0]+"\n" + "|" + lmid(1));
+ KEYS("G", lmid(0, l.size()-2)+"\n" + "|"+lmid(l.size()-2));
+
+ NOT_IMPLEMENTED
+ // include movement to first column, as otherwise the result depends on the 'startofline' setting
+ KEYS("dG0", lmid(0, l.size()-2)+"\n" + "|"+lmid(l.size()-2,1));
+ KEYS("dG0", lmid(0, l.size()-3)+"\n" + "|"+lmid(l.size()-3,1));
}
void FakeVimPlugin::test_vim_command_D()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("$D", l[0]+"\n" + l[1].left(l[1].length()-2)+"@"+l[1][l[1].length()-2]+"\n" + lmid(2));
-// KEYS("0D", l[0] + "\n@\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j", cursor(1, 0));
+ KEYS("$D", l[0]+"\n" + l[1].left(l[1].length()-2)+"|"+l[1][l[1].length()-2]+"\n" + lmid(2));
+ KEYS("0D", l[0] + "\n|\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_dollar()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("j$", cursor(l[2], -1));
-// KEYS("2j", "@)");
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("j$", cursor(2, -1));
+ KEYS("2j", cursor(4, -1));
}
void FakeVimPlugin::test_vim_command_down()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("3j", "@int main");
-// KEYS("4j", "@ return app.exec()");
+
+ data.setText(testLines);
+ KEYS("j", l[0]+ "\n|" + lmid(1));
+ KEYS("3j", lmid(0,4)+"\n" + "|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("4j", lmid(0,8)+"\n" + "| return app.exec();\n" + lmid(9));
}
void FakeVimPlugin::test_vim_command_dfx_down()
{
TestData data;
setup(&data);
-// KEYS("j4l", l[0] + "\n#inc@lude <QtCore>\n" + lmid(2));
-// qWarning("FIXME");
-//return;
-// KEYS("df ", l[0] + "\n#inc@<QtCore>\n" + lmid(2));
-// KEYS("j", l[0] + "\n#inc<QtCore>\n#inc@lude <QtGui>\n" + lmid(3));
-// KEYS(".", l[0] + "\n#inc<QtCore>\n#inc@<QtGui>\n" + lmid(3));
-// KEYS("u", l[0] + "\n#inc<QtCore>\n#inc@lude <QtGui>\n" + lmid(3));
-// KEYS("u", l[0] + "\n#inc@lude <QtCore>\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j4l", l[0] + "\n#inc|lude <QtCore>\n" + lmid(2));
+
+ //NOT_IMPLEMENTED
+ KEYS("df ", l[0] + "\n#inc|<QtCore>\n" + lmid(2));
+ KEYS("j", l[0] + "\n#inc<QtCore>\n#inc|lude <QtGui>\n" + lmid(3));
+ KEYS(".", l[0] + "\n#inc<QtCore>\n#inc|<QtGui>\n" + lmid(3));
+ KEYS("u", l[0] + "\n#inc<QtCore>\n#inc|lude <QtGui>\n" + lmid(3));
+ KEYS("u", l[0] + "\n#inc|lude <QtCore>\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_Cxx_down_dot()
{
TestData data;
setup(&data);
-// KEYS("j4l", l[0] + "\n#inc@lude <QtCore>\n" + lmid(2));
-// KEYS("Cxx<Esc>", l[0] + "\n#incx@x\n" + lmid(2));
-// KEYS("j", l[0] + "\n#incxx\n#incl@ude <QtGui>\n" + lmid(3));
-// KEYS(".", l[0] + "\n#incxx\n#inclx@x\n" + lmid(3));
+
+ data.setText(testLines);
+ KEYS("j4l", l[0] + "\n#inc|lude <QtCore>\n" + lmid(2));
+ KEYS("Cxx<Esc>", l[0] + "\n#incx|x\n" + lmid(2));
+ KEYS("j", l[0] + "\n#incxx\n#incl|ude <QtGui>\n" + lmid(3));
+ KEYS(".", l[0] + "\n#incxx\n#inclx|x\n" + lmid(3));
}
void FakeVimPlugin::test_vim_command_e()
{
TestData data;
setup(&data);
-// KEYS("e", "@#include <QtCore");
-// KEYS("e", "#includ@e <QtCore");
-// KEYS("e", "#include @<QtCore");
-// KEYS("3e", "@#include <QtGui");
-// KEYS("e", "#includ@e <QtGui");
-// KEYS("e", "#include @<QtGui");
-// KEYS("e", "#include <QtGu@i");
-// KEYS("4e", "int main@(int argc, char *argv[])");
-// KEYS("e", "int main(in@t argc, char *argv[])");
-// KEYS("e", "int main(int arg@c, char *argv[])");
-// KEYS("e", "int main(int argc@, char *argv[])");
-// KEYS("e", "int main(int argc, cha@r *argv[])");
-// KEYS("e", "int main(int argc, char @*argv[])");
-// KEYS("e", "int main(int argc, char *arg@v[])");
-// KEYS("e", "int main(int argc, char *argv[]@)");
-// KEYS("e", "@{");
-// KEYS("10k","@\n"); // home.
+
+ data.setText(testLines);
+ KEYS("e", lmid(0,1)+"\n" + "|#include <QtCore>\n" + lmid(2));
+ KEYS("e", lmid(0,1)+"\n" + "#includ|e <QtCore>\n" + lmid(2));
+ KEYS("e", lmid(0,1)+"\n" + "#include |<QtCore>\n" + lmid(2));
+ KEYS("3e", lmid(0,2)+"\n" + "|#include <QtGui>\n" + lmid(3));
+ KEYS("e", lmid(0,2)+"\n" + "#includ|e <QtGui>\n" + lmid(3));
+ KEYS("e", lmid(0,2)+"\n" + "#include |<QtGui>\n" + lmid(3));
+ KEYS("e", lmid(0,2)+"\n" + "#include <QtGu|i>\n" + lmid(3));
+ KEYS("4e", lmid(0,4)+"\n" + "int main|(int argc, char *argv[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(in|t argc, char *argv[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(int arg|c, char *argv[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(int argc|, char *argv[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(int argc, cha|r *argv[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(int argc, char |*argv[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(int argc, char *arg|v[])\n" + lmid(5));
+ KEYS("e", lmid(0,4)+"\n" + "int main(int argc, char *argv[]|)\n" + lmid(5));
+ KEYS("e", lmid(0,5)+"\n" + "|{\n" + lmid(6));
+ KEYS("10k","|\n" + lmid(1)); // home.
}
void FakeVimPlugin::test_vim_command_i()
@@ -2119,208 +2166,242 @@ void FakeVimPlugin::test_vim_command_i()
TestData data;
setup(&data);
-// // empty insertion at start of document
-// KEYS("i<Esc>", "@" + lines);
-// KEYS("u", "@" + lines);
+ data.setText(testLines);
+
+ // empty insertion at start of document
+ KEYS("i<Esc>", "|" + testLines);
+ KEYS("u", "|" + testLines);
-// // small insertion at start of document
-// KEYS("ix<Esc>", "@x" + lines);
-// KEYS("u", "@" + lines);
-// checkEx("redo", "@x" + lines);
-// KEYS("u", "@" + lines);
+ // small insertion at start of document
+ KEYS("ix<Esc>", "|x" + testLines);
+ KEYS("u", "|" + testLines);
+ COMMAND("redo", "|x" + testLines);
+ KEYS("u", "|" + testLines);
-// // small insertion at start of document
-// KEYS("ixxx<Esc>", "xx@x" + lines);
-// KEYS("u", "@" + lines);
+ // small insertion at start of document
+ KEYS("ixxx<Esc>", "xx|x" + testLines);
+ KEYS("u", "|" + testLines);
-// // combine insertions
-// KEYS("i1<Esc>", "@1" + lines);
-// KEYS("i2<Esc>", "@21" + lines);
-// KEYS("i3<Esc>", "@321" + lines);
-// KEYS("u", "@21" + lines);
-// KEYS("u", "@1" + lines);
-// KEYS("u", "@" + lines);
-// KEYS("ia<Esc>", "@a" + lines);
-// KEYS("ibx<Esc>", "b@xa" + lines);
-// KEYS("icyy<Esc>", "bcy@yxa" + lines);
-// KEYS("u", "b@xa" + lines);
-// KEYS("u", "@a" + lines);
-// checkEx("redo", "b@xa" + lines);
-// KEYS("u", "@a" + lines);
+ // combine insertions
+ KEYS("i1<Esc>", "|1" + testLines);
+ KEYS("i2<Esc>", "|21" + testLines);
+ KEYS("i3<Esc>", "|321" + testLines);
+ KEYS("u", "|21" + testLines);
+ KEYS("u", "|1" + testLines);
+ KEYS("u", "|" + testLines);
+ KEYS("ia<Esc>", "|a" + testLines);
+ KEYS("ibx<Esc>", "b|xa" + testLines);
+ KEYS("icyy<Esc>", "bcy|yxa" + testLines);
+ KEYS("u", "b|xa" + testLines);
+ KEYS("u", "|a" + testLines);
+ COMMAND("redo", "|bxa" + testLines);
+ KEYS("u", "|a" + testLines);
}
void FakeVimPlugin::test_vim_command_left()
{
TestData data;
setup(&data);
-// KEYS("4j", "@int main");
-// KEYS("h", "@int main"); // no move over left border
-// KEYS("$", "argv[]@)");
-// KEYS("h", "argv[@])");
-// KEYS("3h", "ar@gv[])");
-// KEYS("50h", "@int main");
+
+ data.setText(testLines);
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("h", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("$", lmid(0, 4) + "\nint main(int argc, char *argv[]|)\n" + lmid(5));
+ KEYS("h", lmid(0, 4) + "\nint main(int argc, char *argv[|])\n" + lmid(5));
+ KEYS("3h", lmid(0, 4) + "\nint main(int argc, char *ar|gv[])\n" + lmid(5));
+ KEYS("50h", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
}
void FakeVimPlugin::test_vim_command_r()
{
TestData data;
setup(&data);
-// KEYS("4j", "@int main");
-// KEYS("$", "int main(int argc, char *argv[]@)");
-// KEYS("rx", lmid(0, 4) + "\nint main(int argc, char *argv[]@x\n" + lmid(5));
-// KEYS("2h", lmid(0, 4) + "\nint main(int argc, char *argv@[]x\n" + lmid(5));
-// KEYS("4ra", lmid(0, 4) + "\nint main(int argc, char *argv@[]x\n" + lmid(5));
-// KEYS("3rb", lmid(0, 4) + "\nint main(int argc, char *argvbb@b\n" + lmid(5));
-// KEYS("2rc", lmid(0, 4) + "\nint main(int argc, char *argvbb@b\n" + lmid(5));
-// KEYS("h2rc",lmid(0, 4) + "\nint main(int argc, char *argvbc@c\n" + lmid(5));
+
+ data.setText(testLines);
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("$", lmid(0, 4) + "\nint main(int argc, char *argv[]|)\n" + lmid(5));
+ KEYS("rx", lmid(0, 4) + "\nint main(int argc, char *argv[]|x\n" + lmid(5));
+ KEYS("2h", lmid(0, 4) + "\nint main(int argc, char *argv|[]x\n" + lmid(5));
+ KEYS("4ra", lmid(0, 4) + "\nint main(int argc, char *argv|[]x\n" + lmid(5));
+ KEYS("3rb", lmid(0, 4) + "\nint main(int argc, char *argvbb|b\n" + lmid(5));
+ KEYS("2rc", lmid(0, 4) + "\nint main(int argc, char *argvbb|b\n" + lmid(5));
+ KEYS("h2rc",lmid(0, 4) + "\nint main(int argc, char *argvbc|c\n" + lmid(5));
}
void FakeVimPlugin::test_vim_command_right()
{
TestData data;
setup(&data);
-// KEYS("4j", "@int main");
-// KEYS("l", "i@nt main");
-// KEYS("3l", "int @main");
-// KEYS("50l", "argv[]@)");
+
+ data.setText(testLines);
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("l", lmid(0, 4) + "\ni|nt main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("3l", lmid(0, 4) + "\nint |main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("50l", lmid(0, 4) + "\nint main(int argc, char *argv[]|)\n" + lmid(5));
}
void FakeVimPlugin::test_vim_command_up()
{
TestData data;
setup(&data);
-// KEYS("j", "@#include <QtCore");
-// KEYS("3j", "@int main");
-// KEYS("4j", "@ return app.exec()");
+
+ data.setText(testLines);
+ KEYS("9j", lmid(0, 9) + "\n|}\n");
+ KEYS("k", lmid(0, 8) + "\n| return app.exec();\n" + lmid(9));
+ KEYS("4k", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("3k", lmid(0, 1) + "\n|#include <QtCore>\n" + lmid(2));
+ KEYS("k", cursor(0, 0));
+ KEYS("2k", cursor(0, 0));
}
void FakeVimPlugin::test_vim_command_w()
{
TestData data;
setup(&data);
-// KEYS("w", "@#include <QtCore");
-// KEYS("w", "#@include <QtCore");
-// KEYS("w", "#include @<QtCore");
-// KEYS("3w", "@#include <QtGui");
-// KEYS("w", "#@include <QtGui");
-// KEYS("w", "#include @<QtGui");
-// KEYS("w", "#include <@QtGui");
-// KEYS("4w", "int @main(int argc, char *argv[])");
-// KEYS("w", "int main@(int argc, char *argv[])");
-// KEYS("w", "int main(@int argc, char *argv[])");
-// KEYS("w", "int main(int @argc, char *argv[])");
-// KEYS("w", "int main(int argc@, char *argv[])");
-// KEYS("w", "int main(int argc, @char *argv[])");
-// KEYS("w", "int main(int argc, char @*argv[])");
-// KEYS("w", "int main(int argc, char *@argv[])");
-// KEYS("w", "int main(int argc, char *argv@[])");
-// KEYS("w", "@{");
+
+ data.setText(testLines);
+ KEYS("w", lmid(0,1)+"\n" + "|#include <QtCore>\n" + lmid(2));
+ KEYS("w", lmid(0,1)+"\n" + "#|include <QtCore>\n" + lmid(2));
+ KEYS("w", lmid(0,1)+"\n" + "#include |<QtCore>\n" + lmid(2));
+ KEYS("3w", lmid(0,2)+"\n" + "|#include <QtGui>\n" + lmid(3));
+ KEYS("w", lmid(0,2)+"\n" + "#|include <QtGui>\n" + lmid(3));
+ KEYS("w", lmid(0,2)+"\n" + "#include |<QtGui>\n" + lmid(3));
+ KEYS("w", lmid(0,2)+"\n" + "#include <|QtGui>\n" + lmid(3));
+ KEYS("4w", lmid(0,4)+"\n" + "int |main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main|(int argc, char *argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(|int argc, char *argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(int |argc, char *argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(int argc|, char *argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(int argc, |char *argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(int argc, char |*argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(int argc, char *|argv[])\n" + lmid(5));
+ KEYS("w", lmid(0,4)+"\n" + "int main(int argc, char *argv|[])\n" + lmid(5));
+ KEYS("w", lmid(0,5)+"\n" + "|{\n" + lmid(6));
}
void FakeVimPlugin::test_vim_command_yyp()
{
TestData data;
setup(&data);
-// KEYS("4j", "@int main");
-// KEYS("yyp", lmid(0, 4) + "\n" + lmid(4, 1) + "\n@" + lmid(4));
+
+ data.setText(testLines);
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("yyp", lmid(0, 4) + "\n" + lmid(4, 1) + "\n|" + lmid(4));
}
void FakeVimPlugin::test_vim_command_y_dollar()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("$y$p", l[0]+"\n"+ l[1]+"@>\n" + lmid(2));
-// KEYS("$y$p", l[0]+"\n"+ l[1]+">@>\n" + lmid(2));
-// KEYS("$y$P", l[0]+"\n"+ l[1]+">@>>\n" + lmid(2));
-// KEYS("$y$P", l[0]+"\n"+ l[1]+">>@>>\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j", l[0]+"\n|" + lmid(1));
+ KEYS("$y$p", l[0]+"\n"+ l[1]+"|>\n" + lmid(2));
+ KEYS("$y$p", l[0]+"\n"+ l[1]+">|>\n" + lmid(2));
+ KEYS("$y$P", l[0]+"\n"+ l[1]+">|>>\n" + lmid(2));
+ KEYS("$y$P", l[0]+"\n"+ l[1]+">>|>>\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_Yp()
{
TestData data;
setup(&data);
-// KEYS("4j", "@int main");
-// KEYS("Yp", lmid(0, 4) + "\n" + lmid(4, 1) + "\n@" + lmid(4));
+
+ data.setText(testLines);
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("Yp", lmid(0, 4) + "\n" + lmid(4, 1) + "\n|" + lmid(4));
}
void FakeVimPlugin::test_vim_command_ma_yank()
{
TestData data;
setup(&data);
-// KEYS("4j", "@int main");
-// KEYS("ygg", "@" + lmid(0));
-// KEYS("4j", "@int main");
-// KEYS("p", lmid(0,5) + "\n@" + lmid(0,4) +"\n" + lmid(4));
-// TestData data;
-// setup(&data);
-// KEYS("ma", "@" + lmid(0));
-// KEYS("4j", "@int main");
-// KEYS("mb", lmid(0,4) + "\n@" + lmid(4));
-// KEYS("\"ay'a", "@" + lmid(0));
-// KEYS("'b", lmid(0,4) + "\n@" + lmid(4));
-// KEYS("\"ap", lmid(0,5) + "\n@" + lmid(0,4) +"\n" + lmid(4));
+ data.setText(testLines);
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("ygg", "|" + lmid(0));
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("p", lmid(0,5) + "\n|" + lmid(0,4) +"\n" + lmid(4));
+
+ data.setText(testLines);
+
+ KEYS("gg", "|" + lmid(0));
+ KEYS("ma", "|" + lmid(0));
+ KEYS("4j", lmid(0, 4) + "\n|int main(int argc, char *argv[])\n" + lmid(5));
+ KEYS("mb", lmid(0,4) + "\n|" + lmid(4));
+ KEYS("\"ay'a", "|" + lmid(0));
+ KEYS("'b", lmid(0,4) + "\n|" + lmid(4));
+ KEYS("\"ap", lmid(0,5) + "\n|" + lmid(0,4) +"\n" + lmid(4));
}
void FakeVimPlugin::test_vim_command_Gyyp()
{
TestData data;
setup(&data);
-// KEYS("G", lmid(0, l.size()-2) + "\n@" + lmid(l.size()-2));
-// KEYS("yyp", lmid(0) + "@" + lmid(9, 1)+"\n");
+
+ data.setText(testLines);
+ KEYS("G", lmid(0, l.size()-2) + "\n|" + lmid(l.size()-2));
+ KEYS("yyp", lmid(0) + "|" + lmid(9, 1)+"\n");
}
void FakeVimPlugin::test_i_cw_i()
{
TestData data;
setup(&data);
-// KEYS("j", "@" + l[1]);
-// KEYS("ixx<Esc>", l[0] + "\nx@x" + lmid(1));
-// KEYS("cwyy<Esc>", l[0] + "\nxy@y" + lmid(1));
-// KEYS("iaa<Esc>", l[0] + "\nxya@ay" + lmid(1));
+
+ data.setText(testLines);
+ KEYS("j", l[0] + "\n|" + lmid(1));
+ KEYS("ixx<Esc>", l[0] + "\nx|x" + lmid(1));
+ KEYS("cwyy<Esc>", l[0] + "\nxy|y" + lmid(1));
+ KEYS("iaa<Esc>", l[0] + "\nxya|ay" + lmid(1));
}
void FakeVimPlugin::test_vim_command_J()
{
TestData data;
setup(&data);
-// KEYS("4j4l", "int @main");
-// KEYS("J", lmid(0, 5) + "@ " + lmid(5));
-// KEYS("u", lmid(0, 4) + "\nint @main(int argc, char *argv[])\n" + lmid(5));
-// checkEx("redo", lmid(0, 5) + "@ " + lmid(5));
+ data.setText(testLines);
+ KEYS("4j4l", lmid(0, 4) + "\nint |main(int argc, char *argv[])\n" + lmid(5));
-// KEYS("3J", lmid(0, 5) + " " + lmid(5, 1) + " " + lmid(6, 1).mid(4) + "@ " + lmid(7));
-// KEYS("uu", lmid(0, 4) + "\nint @main(int argc, char *argv[])\n" + lmid(5));
-// checkEx("redo", lmid(0, 5) + "@ " + lmid(5));
+ KEYS("J", lmid(0, 5) + "| " + lmid(5));
+ KEYS("u", lmid(0, 4) + "\nint |main(int argc, char *argv[])\n" + lmid(5));
+ COMMAND("redo", lmid(0, 5) + "| " + lmid(5));
+
+ KEYS("3J", lmid(0, 5) + " " + lmid(5, 1) + " " + lmid(6, 1).mid(4) + "| " + lmid(7));
+ KEYS("uu", lmid(0, 4) + "\nint |main(int argc, char *argv[])\n" + lmid(5));
+ COMMAND("redo", lmid(0, 5) + "| " + lmid(5));
}
void FakeVimPlugin::test_vim_command_put_at_eol()
{
TestData data;
setup(&data);
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("y$", lmid(0,1)+"\n" + cursor(l[1], -1)+"\n" + lmid(2));
-// KEYS("p", lmid(0,2)+"@>\n" + lmid(2));
-// KEYS("p", lmid(0,2)+">@>\n" + lmid(2));
-// KEYS("$", lmid(0,2)+">@>\n" + lmid(2));
-// KEYS("P", lmid(0,2)+">@>>\n" + lmid(2));
+
+ data.setText(testLines);
+ KEYS("j$", cursor(1, -1));
+ KEYS("y$", cursor(1, -1));
+ KEYS("p", lmid(0,2)+"|>\n" + lmid(2));
+ KEYS("p", lmid(0,2)+">|>\n" + lmid(2));
+ KEYS("$", lmid(0,2)+">|>\n" + lmid(2));
+ KEYS("P", lmid(0,2)+">|>>\n" + lmid(2));
}
void FakeVimPlugin::test_vim_command_oO()
{
TestData data;
setup(&data);
-// KEYS("gg", "@" + lmid(0));
-// KEYS("Ol1<Esc>", "l@1\n" + lmid(0));
-// KEYS("gg", "@l1\n" + lmid(0));
-// KEYS("ol2<Esc>", "l1\n" "l@2\n" + lmid(0));
-// KEYS("G", "l1\n" "l2\n" + lmid(0,l.size()-2)+"\n" + "@"+lmid(l.size()-2));
-// KEYS("G$", "l1\n" "l2\n" + lmid(0,l.size()-2)+"\n" + "@"+lmid(l.size()-2));
-// KEYS("ol-1<Esc>", "l1\n" "l2\n" + lmid(0) + "l-@1\n");
-// KEYS("G", "l1\n" "l2\n" + lmid(0) + "@l-1\n");
-// KEYS("Ol-2<Esc>", "l1\n" "l2\n" + lmid(0) + "l-@2\n" + "l-1\n");
+
+ data.setText(testLines);
+ KEYS("gg", "|" + lmid(0));
+ KEYS("Ol1<Esc>", "l|1\n" + lmid(0));
+ KEYS("gg", "|l1\n" + lmid(0));
+ KEYS("ol2<Esc>", "l1\n" "l|2\n" + lmid(0));
+ KEYS("G", "l1\n" "l2\n" + lmid(0,l.size()-2)+"\n" + "|"+lmid(l.size()-2));
+ KEYS("G$", "l1\n" "l2\n" + lmid(0,l.size()-2)+"\n" + "|"+lmid(l.size()-2));
+ KEYS("ol-1<Esc>", "l1\n" "l2\n" + lmid(0) + "l-|1\n");
+ KEYS("G", "l1\n" "l2\n" + lmid(0) + "|l-1\n");
+ KEYS("Ol-2<Esc>", "l1\n" "l2\n" + lmid(0) + "l-|2\n" + "l-1\n");
}
void FakeVimPlugin::test_vim_command_x()
@@ -2328,9 +2409,10 @@ void FakeVimPlugin::test_vim_command_x()
TestData data;
setup(&data);
-// KEYS("x", "@" + lmid(0));
-// KEYS("j$", cursor(l[1], -1));
-// KEYS("x", lmid(0,1)+"\n" + l[1].left(l[1].length()-2)+"@"+l[1].mid(l[1].length()-2,1)+"\n" + lmid(2));
+ data.setText(testLines);
+ KEYS("x", "|" + lmid(0));
+ KEYS("j$", cursor(1, -1));
+ KEYS("x", lmid(0,1)+"\n" + l[1].left(l[1].length()-2)+"|"+l[1].mid(l[1].length()-2,1)+"\n" + lmid(2));
}
void FakeVimPlugin::test_vim_visual_d()
@@ -2338,29 +2420,30 @@ void FakeVimPlugin::test_vim_visual_d()
TestData data;
setup(&data);
-// KEYS("vd", "@" + lmid(0));
-// KEYS("vx", "@" + lmid(0));
-// KEYS("vjd", "@" + lmid(1).mid(1));
-// KEYS("ugg", "@" + lmid(0)); // FIXME: cursor should be at begin of doc w/o gg
-// KEYS("j", "@" + l[1]);
-// KEYS("vd", lmid(0, 1)+"\n" + "@" + lmid(1).mid(1));
-// KEYS("u", lmid(0, 1)+"\n" + "@" + lmid(1));
-// KEYS("vx", lmid(0, 1)+"\n" + "@" + lmid(1).mid(1));
-// KEYS("u", lmid(0, 1)+"\n" + "@" + lmid(1));
-// KEYS("vhx", lmid(0, 1)+"\n" + "@" + lmid(1).mid(1));
-// KEYS("u", lmid(0, 1)+"\n" + "@" + lmid(1));
-// KEYS("vlx", lmid(0, 1)+"\n" + "@" + lmid(1).mid(2));
-// KEYS("P", lmid(0, 1)+"\n" + lmid(1).left(1)+"@"+lmid(1).mid(1));
-// KEYS("vhd", lmid(0, 1)+"\n" + "@" + lmid(1).mid(2));
-// KEYS("u0", lmid(0, 1)+"\n" + "@" + lmid(1)); // FIXME: cursor should be at begin of line w/o 0
-// qWarning("FIXME");
-//return;
-// KEYS("v$d", lmid(0, 1)+"\n" + "@" + lmid(2));
-// KEYS("v$od", lmid(0, 1)+"\n" + "@" + lmid(3));
-// KEYS("$v$x", lmid(0, 1)+"\n" + lmid(3,1) + "@" + lmid(4));
-// KEYS("0v$d", lmid(0, 1)+"\n" + "@" + lmid(5));
-// KEYS("$v0d", lmid(0, 1)+"\n" + "@\n" + lmid(6));
-// KEYS("v$o0k$d", lmid(0, 1)+"\n" + "@" + lmid(6).mid(1));
+ data.setText(testLines);
+ KEYS("vd", "|" + lmid(0));
+ KEYS("vx", "|" + lmid(0));
+ KEYS("vjd", "|" + lmid(1).mid(1));
+ KEYS("u", "|" + lmid(0));
+ KEYS("j", lmid(0, 1)+"\n" + "|" + lmid(1));
+ KEYS("vd", lmid(0, 1)+"\n" + "|" + lmid(1).mid(1));
+ KEYS("u", lmid(0, 1)+"\n" + "|" + lmid(1));
+ KEYS("vx", lmid(0, 1)+"\n" + "|" + lmid(1).mid(1));
+ KEYS("u", lmid(0, 1)+"\n" + "|" + lmid(1));
+ KEYS("vhx", lmid(0, 1)+"\n" + "|" + lmid(1).mid(1));
+ KEYS("u", lmid(0, 1)+"\n" + "|" + lmid(1));
+ KEYS("vlx", lmid(0, 1)+"\n" + "|" + lmid(1).mid(2));
+ KEYS("P", lmid(0, 1)+"\n" + lmid(1).left(1)+"|"+lmid(1).mid(1));
+ KEYS("vhd", lmid(0, 1)+"\n" + "|" + lmid(1).mid(2));
+ KEYS("u", lmid(0, 1)+"\n" + "|" + lmid(1));
+
+ KEYS("v$d", lmid(0, 1)+"\n" + "|" + lmid(2));
+ NOT_IMPLEMENTED
+ KEYS("v$od", lmid(0, 1)+"\n" + "|" + lmid(3));
+ KEYS("$v$x", lmid(0, 1)+"\n" + lmid(3,1) + "|" + lmid(4));
+ KEYS("0v$d", lmid(0, 1)+"\n" + "|" + lmid(5));
+ KEYS("$v0d", lmid(0, 1)+"\n" + "|\n" + lmid(6));
+ KEYS("v$o0k$d", lmid(0, 1)+"\n" + "|" + lmid(6).mid(1));
}
void FakeVimPlugin::test_vim_Visual_d()
@@ -2368,88 +2451,14 @@ void FakeVimPlugin::test_vim_Visual_d()
TestData data;
setup(&data);
-// KEYS("Vd", "@" + lmid(1));
-// KEYS("V2kd", "@" + lmid(2));
-// KEYS("u", "@" + lmid(1));
-// KEYS("u", "@" + lmid(0));
-// KEYS("j", "@" + l[1]);
-// KEYS("V$d", lmid(0,1)+"\n" + "@" + lmid(2));
-// KEYS("$V$$d", lmid(0,1)+"\n" + "@" + lmid(3));
-// KEYS("Vkx", "@" + lmid(4));
-// KEYS("P", "@" + lmid(0,1)+"\n" + lmid(3));
-}
-
-
-//bool FakeVimPlugin::checkContentsHelper(QString want, const char* file, int line)
-//{
-// QString got = EDITOR(toPlainText());
-// int pos = EDITOR(textCursor().position());
-// got = got.left(pos) + "@" + got.mid(pos);
-// QStringList wantlist = want.split('\n');
-// QStringList gotlist = got.split('\n');
-// if (!QTest::qCompare(gotlist.size(), wantlist.size(), "", "", file, line)) {
-// qDebug() << "0 WANT: " << want;
-// qDebug() << "0 GOT: " << got;
-// return false;
-// }
-// for (int i = 0; i < wantlist.size() && i < gotlist.size(); ++i) {
-// QString g = QString("line %1: %2").arg(i + 1).arg(gotlist.at(i));
-// QString w = QString("line %1: %2").arg(i + 1).arg(wantlist.at(i));
-// if (!QTest::qCompare(g, w, "", "", file, line)) {
-// qDebug() << "1 WANT: " << want;
-// qDebug() << "1 GOT: " << got;
-// return false;
-// }
-// }
-// return true;
-//}
-
-//bool FakeVimPlugin::checkHelper(bool ex, QString cmd, QString expected,
-// const char *file, int line)
-//{
-// if (ex)
-// data.doCommand((cmd);
-// else
-// send(cmd);
-// return checkContentsHelper(expected, file, line);
-//}
-
-
-//#define checkContents(expected) \
-// do { if (!checkContentsHelper(expected, __FILE__, __LINE__)) return; } while (0)
-
-//// Runs a "normal" command and checks the result.
-//// Cursor position is marked by a '@' in the expected contents.
-//#define check(cmd, expected) \
-// do { if (!checkHelper(false, cmd, expected, __FILE__, __LINE__)) \
-// return; } while (0)
-
-//#define move(cmd, expected) \
-// do { if (!checkHelper(false, cmd, insertCursor(expected), __FILE__, __LINE__)) \
-// return; } while (0)
-
-//// Runs an ex command and checks the result.
-//// Cursor position is marked by a '@' in the expected contents.
-//#define checkEx(cmd, expected) \
-// do { if (!checkHelper(true, cmd, expected, __FILE__, __LINE__)) \
-// return; } while (0)
-
-//QString FakeVimPlugin::insertCursor(const QString &needle0)
-//{
-// QString needle = needle0;
-// needle.remove('@');
-// QString lines0 = lines;
-// int pos = lines0.indexOf(needle);
-// if (pos == -1)
-// qDebug() << "Cannot find: \n----\n" + needle + "\n----\n";
-// lines0.replace(pos, needle.size(), needle0);
-// return lines0;
-//}
-
-//QString FakeVimPlugin::cursor(const QString &line, int pos)
-//{
-// if (pos < 0)
-// pos = line.length() + pos;
-
-// return line.left(pos) + "@" + line.mid(pos);
-//}
+ data.setText(testLines);
+ KEYS("Vd", "|" + lmid(1));
+ KEYS("V2kd", "|" + lmid(2));
+ KEYS("u", "|" + lmid(1));
+ KEYS("u", "|" + lmid(0));
+ KEYS("j", lmid(0,1)+"\n" + "|" + lmid(1));
+ KEYS("V$d", lmid(0,1)+"\n" + "|" + lmid(2));
+ KEYS("$V$$d", lmid(0,1)+"\n" + "|" + lmid(3));
+ KEYS("Vkx", "|" + lmid(4));
+ KEYS("P", "|" + lmid(0,1)+"\n" + lmid(3));
+}
diff --git a/src/plugins/fakevim/fakevimplugin.h b/src/plugins/fakevim/fakevimplugin.h
index 437e3f92cc..8cd60b9b98 100644
--- a/src/plugins/fakevim/fakevimplugin.h
+++ b/src/plugins/fakevim/fakevimplugin.h
@@ -145,34 +145,10 @@ private slots:
void test_map();
//private:
-// void setup();
-// void send(const QString &command) { sendEx("normal " + command); }
-// void sendEx(const QString &command); // send an ex command
-
-// bool checkContentsHelper(QString expected, const char* file, int line);
-// bool checkHelper(bool isExCommand, QString cmd, QString expected,
-// const char* file, int line);
-// QString insertCursor(const QString &needle0);
-// QString cursor(const QString &line, int pos); // insert @ at cursor pos, negative counts from back
-
-// QString lmid(int i, int n = -1) const
-// { return QStringList(l.mid(i, n)).join("\n"); }
-
-// QTextEdit *m_textedit;
-// QPlainTextEdit *m_plaintextedit;
-// FakeVimHandler *m_handler;
-// QList<QTextEdit::ExtraSelection> m_selection;
-
// QString m_statusMessage;
// QString m_statusData;
// QString m_infoMessage;
-// // the individual lines
-// static const QStringList l; // identifier intentionally kept short
-// static const QString lines;
-// static const QString escape;
-//};
-
private:
struct TestData;
void setup(TestData *data);