~ubuntu-branches/debian/sid/texstudio/sid

« back to all changes in this revision

Viewing changes to tests/latexcompleter_t.cpp

  • Committer: Package Import Robot
  • Author(s): Tom Jampen
  • Date: 2015-09-13 21:19:38 UTC
  • mfrom: (1.1.11)
  • Revision ID: package-import@ubuntu.com-20150913211938-r3ro0cmgzo7w6frp
Tags: 2.10.0+debian-1
* Merging upstream version 2.10.0+debian.
* Updating 01-use-libhunspell.patch.
* Regenerating 03-disable-auto-update.patch.
* Updating 04-no-qt-translations.patch.
* Removing 05-fix-mercurial-revision.patch, included upstream.
* Updating copyright file to match source code changes.
* Updating rules file to reflect new changelog location.
* Removing no longer used lintian-override.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
void LatexCompleterTest::initTestCase(){
31
31
        edView->editor->emitNeedUpdatedCompleter();
32
 
        QSet<QString> helper;
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
 
35
    QSet<QString> labels;
 
36
    labels<<"abc"<<"bcd";
 
37
    edView->getCompleter()->setAdditionalWords(labels,CT_LABELS);
 
38
    labels.clear();
 
39
    labels<<"abcq"<<"bcdq";
 
40
    edView->getCompleter()->setAdditionalWords(labels,CT_CITATIONS);
 
41
    labels.clear();
 
42
    labels<<"abc1"<<"bcd1";
 
43
    edView->getCompleter()->setKeyValWords("key%\\test",labels);
 
44
    labels.clear();
 
45
    labels<<"abc2"<<"bcd2";
 
46
    edView->getCompleter()->setKeyValWords("key%\\test/abc",labels);
 
47
    labels.clear();
 
48
    labels<<"abc3"<<"bcd3";
 
49
    edView->getCompleter()->setKeyValWords("%abc",labels);
 
50
    labels.clear();
 
51
    labels<<"abc4"<<"bcd4";
 
52
    edView->getCompleter()->setContextWords(labels,"%abca");
 
53
    labels.clear();
 
54
    labels<<"%abca"<<"bcd3";
 
55
    edView->getCompleter()->setKeyValWords("%abcd",labels);
35
56
}
36
57
 
37
58
void LatexCompleterTest::simple_data(){
296
317
        edView->editor->clearCursorMirrors();
297
318
}
298
319
 
 
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");
 
329
 
 
330
    QTest::newRow("simple") << ">><<" << "" <<  0 << 2 << 0
 
331
                            << "" << ""
 
332
                            << (QStringList()
 
333
                                << "\\:>>\\<<"
 
334
                                << "b:>>\\b<<"
 
335
                                << "e:>>\\be<<"
 
336
                                << "g:>>\\beg<<"
 
337
                                << "\n:>>\\begin{*environment-name*}\n\tcontent...\n\\end{*environment-name*}<<");
 
338
 
 
339
    QTest::newRow("ref") << ">>{}<<" << "" <<  0 << 3 << 5
 
340
                            << "" << ""
 
341
                            << (QStringList()
 
342
                                << "a:>>{a}<<"
 
343
                                << "\n:>>{abc}<<"
 
344
                                );
 
345
    QTest::newRow("ref-replace") << ">>{hj}<<" << "" <<  0 << 3 << 5
 
346
                            << "" << ""
 
347
                            << (QStringList()
 
348
                                << "a:>>{ahj}<<"
 
349
                                << "\n:>>{abc}<<"
 
350
                                );
 
351
 
 
352
    QTest::newRow("key") << ">>{}<<" << "key%\\test" <<  0 << 3 << 129
 
353
                            << "" << ""
 
354
                            << (QStringList()
 
355
                                << "a:>>{a}<<"
 
356
                                << "\n:>>{abc1}<<"
 
357
                                );
 
358
    QTest::newRow("key2") << ">>{a,}<<" << "key%\\test" <<  0 << 5 << 129
 
359
                            << "" << ""
 
360
                            << (QStringList()
 
361
                                << "a:>>{a,a}<<"
 
362
                                << "\n:>>{a,abc1}<<"
 
363
                                );
 
364
    QTest::newRow("key-replace") << ">>{gh}<<" << "key%\\test" <<  0 << 3 << 129
 
365
                            << "" << ""
 
366
                            << (QStringList()
 
367
                                << "a:>>{agh}<<"
 
368
                                << "\n:>>{abc1}<<"
 
369
                                );
 
370
    QTest::newRow("key-replace2") << ">>{gh,}<<" << "key%\\test" <<  0 << 3 << 129
 
371
                            << "" << ""
 
372
                            << (QStringList()
 
373
                                << "a:>>{agh,}<<"
 
374
                                << "\n:>>{abc1,}<<"
 
375
                                );
 
376
    QTest::newRow("keyval") << ">>{}<<" << "key%\\test/abc" <<  0 << 3 << 129
 
377
                            << "" << ""
 
378
                            << (QStringList()
 
379
                                << "a:>>{a}<<"
 
380
                                << "\n:>>{abc2}<<"
 
381
                                );
 
382
    QTest::newRow("keyval2") << ">>{a=}<<" << "key%\\test/abc" <<  0 << 5 << 129
 
383
                            << "" << ""
 
384
                            << (QStringList()
 
385
                                << "a:>>{a=a}<<"
 
386
                                << "\n:>>{a=abc2}<<"
 
387
                                );
 
388
    QTest::newRow("keyval-replace") << ">>{a=f,bbb}<<" << "key%\\test/abc" <<  0 << 5 << 129
 
389
                            << "" << ""
 
390
                            << (QStringList()
 
391
                                << "a:>>{a=af,bbb}<<"
 
392
                                << "\n:>>{a=abc2,bbb}<<"
 
393
                                );
 
394
    QTest::newRow("special") << ">>{}<<" << "%abc" <<  0 << 3 << 129
 
395
                            << "" << ""
 
396
                            << (QStringList()
 
397
                                << "a:>>{a}<<"
 
398
                                << "\n:>>{abc3}<<"
 
399
                                );
 
400
    QTest::newRow("special2") << ">>{}<<" << "%abca" <<  0 << 3 << 257 // maybe unite keyval with context list ??? context does not replace old content ...
 
401
                            << "" << ""
 
402
                            << (QStringList()
 
403
                                << "a:>>{a}<<"
 
404
                                << "\n:>>{abc4}<<"
 
405
                                );
 
406
    QTest::newRow("special-replacement") << ">>{gh}<<" << "%abca" <<  0 << 3 << 257 // maybe unite keyval with context list ??? context does not replace old content ...
 
407
                            << "" << ""
 
408
                            << (QStringList()
 
409
                                << "a:>>{agh}<<"
 
410
                                << "\n:>>{abc4gh}<<"
 
411
                                );
 
412
    QTest::newRow("special3") << ">>{}<<" << "%abcd" <<  0 << 3 << 129 // keyvals refer to special
 
413
                            << "" << ""
 
414
                            << (QStringList()
 
415
                                << "a:>>{a}<<"
 
416
                                << "\n:>>{abc4}<<"
 
417
                                );
 
418
    QTest::newRow("cite") << ">>\\cit<<" << "" <<  0 << 6 << 0
 
419
                            << "" << ""
 
420
                            << (QStringList()
 
421
                                << "\n:>>\\cite{abcq}<<"
 
422
                                );
 
423
    QTest::newRow("cite2") << ">>{a}<<" << "" <<  0 << 4 << 32
 
424
                            << "" << ""
 
425
                            << (QStringList()
 
426
                                << "#:>>{abcq}<<"
 
427
                                );
 
428
    QTest::newRow("cite2") << ">>{ag,}<<" << "" <<  0 << 6 << 32
 
429
                            << "" << ""
 
430
                            << (QStringList()
 
431
                                << "a:>>{ag,a}<<"
 
432
                                << "\n:>>{ag,abcq}<<"
 
433
                                );
 
434
    QTest::newRow("cite-replace") << ">>{ag}<<" << "" <<  0 << 3 << 32
 
435
                            << "" << ""
 
436
                            << (QStringList()
 
437
                                << "a:>>{aag}<<"
 
438
                                << "\n:>>{abcq}<<"
 
439
                                );
 
440
 
 
441
}
 
442
void LatexCompleterTest::keyval(){
 
443
    QFETCH(QString, text);
 
444
    QFETCH(QString, workingDir);
 
445
    QFETCH(QString, preinsert);
 
446
    QFETCH(QString, preres);
 
447
    QFETCH(int, completerFlag);
 
448
    QFETCH(int, line);
 
449
    QFETCH(int, offset);
 
450
    QFETCH(QStringList, log);
 
451
 
 
452
    config->eowCompletes = false;
 
453
 
 
454
    edView->editor->cutBuffer = "";
 
455
 
 
456
    edView->editor->setFlag(QEditor::AutoCloseChars, false);
 
457
    edView->editor->setText(text, false);
 
458
    edView->editor->setCursor(edView->editor->document()->cursor(line,offset));
 
459
 
 
460
    if (!preinsert.isEmpty()) {
 
461
        edView->editor->insertText(preinsert);
 
462
        QEQUAL(edView->editor->text(), preres);
 
463
    }
 
464
    edView->getCompleter()->setWorkPath(workingDir);
 
465
    edView->complete(completerFlag);
 
466
    foreach (const QString& s, log){
 
467
        char key = s.at(0).toLatin1();
 
468
        if(key=='\n'){
 
469
            QTest::keyClick(edView->editor, Qt::Key_Return);
 
470
        }else{
 
471
            if(key!='#'){ // # means no input
 
472
                QTest::keyClick(edView->editor, key);
 
473
            }
 
474
        }
 
475
        QString text = s.mid(2);
 
476
        QString ist=edView->editor->text();
 
477
        QEQUAL(ist, text);
 
478
    }
 
479
 
 
480
    edView->editor->clearPlaceHolders();
 
481
    edView->editor->clearCursorMirrors();
 
482
}
 
483
 
299
484
#endif
300
485