30
30
void LatexCompleterTest::initTestCase(){
31
31
edView->editor->emitNeedUpdatedCompleter();
33
helper << "\\a{" << "\\b" << "\\begin{align*}\n\n\\end{align*}" << "\\begin{alignat}{n}\n\\end{alignat}" << "\\only<abc>{def}" << "\\only{abc}<def>";
32
CodeSnippetList helper;
33
helper << CodeSnippet("\\a{") << CodeSnippet("\\b") << CodeSnippet("\\begin{align*}\n\n\\end{align*}") << CodeSnippet("\\begin{alignat}{n}\n\\end{alignat}") << CodeSnippet("\\only<abc>{def}") << CodeSnippet("\\only{abc}<def>");
34
34
edView->getCompleter()->setAdditionalWords(helper); //extra words needed for test
37
edView->getCompleter()->setAdditionalWords(labels,CT_LABELS);
39
labels<<"abcq"<<"bcdq";
40
edView->getCompleter()->setAdditionalWords(labels,CT_CITATIONS);
42
labels<<"abc1"<<"bcd1";
43
edView->getCompleter()->setKeyValWords("key%\\test",labels);
45
labels<<"abc2"<<"bcd2";
46
edView->getCompleter()->setKeyValWords("key%\\test/abc",labels);
48
labels<<"abc3"<<"bcd3";
49
edView->getCompleter()->setKeyValWords("%abc",labels);
51
labels<<"abc4"<<"bcd4";
52
edView->getCompleter()->setContextWords(labels,"%abca");
54
labels<<"%abca"<<"bcd3";
55
edView->getCompleter()->setKeyValWords("%abcd",labels);
37
58
void LatexCompleterTest::simple_data(){
296
317
edView->editor->clearCursorMirrors();
320
void LatexCompleterTest::keyval_data(){
321
QTest::addColumn<QString>("text");
322
QTest::addColumn<QString>("workingDir");
323
QTest::addColumn<int>("line");
324
QTest::addColumn<int>("offset");
325
QTest::addColumn<int>("completerFlag");
326
QTest::addColumn<QString>("preinsert");
327
QTest::addColumn<QString>("preres");
328
QTest::addColumn<QStringList>("log");
330
QTest::newRow("simple") << ">><<" << "" << 0 << 2 << 0
337
<< "\n:>>\\begin{*environment-name*}\n\tcontent...\n\\end{*environment-name*}<<");
339
QTest::newRow("ref") << ">>{}<<" << "" << 0 << 3 << 5
345
QTest::newRow("ref-replace") << ">>{hj}<<" << "" << 0 << 3 << 5
352
QTest::newRow("key") << ">>{}<<" << "key%\\test" << 0 << 3 << 129
358
QTest::newRow("key2") << ">>{a,}<<" << "key%\\test" << 0 << 5 << 129
364
QTest::newRow("key-replace") << ">>{gh}<<" << "key%\\test" << 0 << 3 << 129
370
QTest::newRow("key-replace2") << ">>{gh,}<<" << "key%\\test" << 0 << 3 << 129
376
QTest::newRow("keyval") << ">>{}<<" << "key%\\test/abc" << 0 << 3 << 129
382
QTest::newRow("keyval2") << ">>{a=}<<" << "key%\\test/abc" << 0 << 5 << 129
388
QTest::newRow("keyval-replace") << ">>{a=f,bbb}<<" << "key%\\test/abc" << 0 << 5 << 129
391
<< "a:>>{a=af,bbb}<<"
392
<< "\n:>>{a=abc2,bbb}<<"
394
QTest::newRow("special") << ">>{}<<" << "%abc" << 0 << 3 << 129
400
QTest::newRow("special2") << ">>{}<<" << "%abca" << 0 << 3 << 257 // maybe unite keyval with context list ??? context does not replace old content ...
406
QTest::newRow("special-replacement") << ">>{gh}<<" << "%abca" << 0 << 3 << 257 // maybe unite keyval with context list ??? context does not replace old content ...
412
QTest::newRow("special3") << ">>{}<<" << "%abcd" << 0 << 3 << 129 // keyvals refer to special
418
QTest::newRow("cite") << ">>\\cit<<" << "" << 0 << 6 << 0
421
<< "\n:>>\\cite{abcq}<<"
423
QTest::newRow("cite2") << ">>{a}<<" << "" << 0 << 4 << 32
428
QTest::newRow("cite2") << ">>{ag,}<<" << "" << 0 << 6 << 32
432
<< "\n:>>{ag,abcq}<<"
434
QTest::newRow("cite-replace") << ">>{ag}<<" << "" << 0 << 3 << 32
442
void LatexCompleterTest::keyval(){
443
QFETCH(QString, text);
444
QFETCH(QString, workingDir);
445
QFETCH(QString, preinsert);
446
QFETCH(QString, preres);
447
QFETCH(int, completerFlag);
450
QFETCH(QStringList, log);
452
config->eowCompletes = false;
454
edView->editor->cutBuffer = "";
456
edView->editor->setFlag(QEditor::AutoCloseChars, false);
457
edView->editor->setText(text, false);
458
edView->editor->setCursor(edView->editor->document()->cursor(line,offset));
460
if (!preinsert.isEmpty()) {
461
edView->editor->insertText(preinsert);
462
QEQUAL(edView->editor->text(), preres);
464
edView->getCompleter()->setWorkPath(workingDir);
465
edView->complete(completerFlag);
466
foreach (const QString& s, log){
467
char key = s.at(0).toLatin1();
469
QTest::keyClick(edView->editor, Qt::Key_Return);
471
if(key!='#'){ // # means no input
472
QTest::keyClick(edView->editor, key);
475
QString text = s.mid(2);
476
QString ist=edView->editor->text();
480
edView->editor->clearPlaceHolders();
481
edView->editor->clearCursorMirrors();