File indexing completed on 2024-05-19 04:39:50

0001 /*
0002     SPDX-FileCopyrightText: 2007 Alexander Dymo <adymo@kdevelop.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "test_view.h"
0008 
0009 #include <QTextEdit>
0010 #include <QTest>
0011 #include <QStandardPaths>
0012 
0013 #include <sublime/controller.h>
0014 #include <sublime/tooldocument.h>
0015 #include <sublime/view.h>
0016 
0017 using namespace Sublime;
0018 
0019 void TestView::widgetDeletion()
0020 {
0021     Controller controller;
0022     Document *doc = new ToolDocument(QStringLiteral("tool"), &controller, new SimpleToolWidgetFactory<QTextEdit>(QStringLiteral("tool")));
0023 
0024     View *view = doc->createView();
0025     //create the widget
0026     view->widget();
0027     QVERIFY(view->hasWidget());
0028     QCOMPARE(view->widget()->metaObject()->className(), "QTextEdit");
0029 
0030     //delete the widget and check that view knows about that
0031     delete view->widget();
0032     QVERIFY(!view->hasWidget());
0033 }
0034 
0035 class Test: public View {
0036 Q_OBJECT
0037 public:
0038     explicit Test(Document *doc): View(doc) {}
0039 };
0040 
0041 class TestDocument: public Document {
0042 Q_OBJECT
0043 public:
0044     explicit TestDocument(Controller *controller): Document(QStringLiteral("TestDocument"), controller) {}
0045     QString documentType() const override { return QStringLiteral("Test"); }
0046     QString documentSpecifier() const override { return QString(); }
0047 protected:
0048     QWidget *createViewWidget(QWidget *parent = nullptr) override { return new QWidget(parent); }
0049     View *newView(Document *doc) override { return new Test(doc); }
0050 };
0051 
0052 void TestView::initTestCase()
0053 {
0054     QStandardPaths::setTestModeEnabled(true);
0055 }
0056 
0057 void TestView::viewReimplementation()
0058 {
0059     Controller controller;
0060     Document *doc = new TestDocument(&controller);
0061     View *view = doc->createView();
0062     QVERIFY(dynamic_cast<Test*>(view) != nullptr);
0063 }
0064 
0065 QTEST_MAIN(TestView)
0066 
0067 #include "test_view.moc"
0068 #include "moc_test_view.cpp"