[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kparts/tests
From:       David Faure <faure () kde ! org>
Date:       2007-08-13 23:33:27
Message-ID: 1187048007.629812.13945.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 699719 by dfaure:

unit test openUrl/closeUrl behavior wrt OpenUrlArguments


 M  +1 -0      CMakeLists.txt  
 M  +45 -2     parttest.cpp  
 M  +2 -0      parttest.h  


--- trunk/KDE/kdelibs/kparts/tests/CMakeLists.txt #699718:699719
@@ -78,6 +78,7 @@
        FOREACH(_testname ${ARGN})
                kde4_add_test_executable(${_testname} ${_testname}.cpp)
                target_link_libraries(${_testname} ${KDE4_KPARTS_LIBS} \
${QT_QTTEST_LIBRARY}) +               set_target_properties(${_testname} PROPERTIES \
COMPILE_FLAGS -DKDESRCDIR="\\"${CMAKE_CURRENT_SOURCE_DIR}\\"")  ENDFOREACH(_testname)
 ENDMACRO(KPARTS_EXECUTABLE_TESTS)
 
--- trunk/KDE/kdelibs/kparts/tests/parttest.cpp #699718:699719
@@ -24,13 +24,23 @@
 
 QTEST_KDEMAIN( PartTest, GUI )
 
-class TestPart : public KParts::Part
+class TestPart : public KParts::ReadOnlyPart
 {
 public:
     TestPart(QObject* parent, QWidget* parentWidget)
-        : KParts::Part(parent) {
+        : KParts::ReadOnlyPart(parent),
+          m_openFileCalled(false) {
         setWidget(new QWidget(parentWidget));
     }
+
+    bool openFileCalled() const { return m_openFileCalled; }
+protected:
+    /*reimp*/ bool openFile() {
+        m_openFileCalled = true;
+        return true;
+    }
+private:
+    bool m_openFileCalled;
 };
 
 void PartTest::testAutoDeletePart()
@@ -73,4 +83,37 @@
     delete widget;
 }
 
+// There is no operator== in OpenUrlArguments because it's only useful in unit tests
+static bool compareArgs(const KParts::OpenUrlArguments& arg1,
+                        const KParts::OpenUrlArguments& arg2)
+{
+    return arg1.mimeType() == arg2.mimeType() &&
+        arg1.xOffset() == arg2.xOffset() &&
+        arg1.yOffset() == arg2.yOffset() &&
+        arg1.reload() == arg2.reload();
+}
+
+void PartTest::testOpenUrlArguments()
+{
+    TestPart* part = new TestPart(0, 0);
+    QVERIFY(part->closeUrl()); // nothing to do, no error
+    QVERIFY(part->arguments().mimeType().isEmpty());
+    KParts::OpenUrlArguments args;
+    args.setMimeType("application/xml");
+    args.setXOffset(50);
+    args.setYOffset(10);
+    args.setReload(true);
+    part->setArguments(args);
+    QVERIFY(compareArgs(args, part->arguments()));
+    part->openUrl(KUrl(KDESRCDIR "/parttest.cpp"));
+    QVERIFY(part->openFileCalled());
+    QVERIFY(compareArgs(args, part->arguments()));
+
+    // Explicit call to closeUrl: arguments are cleared
+    part->closeUrl();
+    QVERIFY(part->arguments().mimeType().isEmpty());
+
+    delete part;
+}
+
 #include "parttest.moc"
--- trunk/KDE/kdelibs/kparts/tests/parttest.h #699718:699719
@@ -30,6 +30,8 @@
     void testAutoDeleteWidget();
     void testNoAutoDeletePart();
     void testNoAutoDeleteWidget();
+
+    void testOpenUrlArguments();
 };
 
 #endif /* PARTTEST_H */


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic