aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-03-23 13:31:35 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:05 -0300
commitdeefa3508703537c318d18e5da2df57ae19a70bd (patch)
treec73144080fa16143ebcd6d6d11c4d8d6e84353af /tests
parent61f479b6826f7d88c02c0ab5986e8e2c08be5518 (diff)
Fix bug 694 - "QWebPage::extensions need injected overloads due to required casts on C++ version"
Diffstat (limited to 'tests')
-rw-r--r--tests/QtWebKit/CMakeLists.txt1
-rw-r--r--tests/QtWebKit/bug_694.py50
2 files changed, 51 insertions, 0 deletions
diff --git a/tests/QtWebKit/CMakeLists.txt b/tests/QtWebKit/CMakeLists.txt
index 4f381ff52..1902fbf9a 100644
--- a/tests/QtWebKit/CMakeLists.txt
+++ b/tests/QtWebKit/CMakeLists.txt
@@ -1,3 +1,4 @@
PYSIDE_TEST(bug_448.py)
+PYSIDE_TEST(bug_694.py)
PYSIDE_TEST(webpage_test.py)
PYSIDE_TEST(webview_test.py)
diff --git a/tests/QtWebKit/bug_694.py b/tests/QtWebKit/bug_694.py
new file mode 100644
index 000000000..f4e0e0c7f
--- /dev/null
+++ b/tests/QtWebKit/bug_694.py
@@ -0,0 +1,50 @@
+import sys
+import unittest
+from PySide.QtCore import *
+from PySide.QtGui import *
+from PySide.QtWebKit import *
+
+class ErrorPage (QWebPage):
+
+ def __init__(self):
+ QWebPage.__init__(self)
+ self.rcv_extension = None
+ self.rcv_url = None
+ self.rcv_url_copy = None
+ self.rcv_option_type = None
+ self.rcv_output_type = None
+
+
+ def supportsExtension(self, extension):
+ return extension == QWebPage.ErrorPageExtension
+
+ def extension(self, extension, option, output):
+ self.rcv_extension = extension
+ self.rcv_url = option.url
+ self.rcv_url_copy = QUrl(option.url)
+ self.rcv_option_type = type(option)
+ self.rcv_output_type = type(output)
+ return True
+
+class TestWebPageExtension(unittest.TestCase):
+ def testIt(self):
+ app = QApplication([])
+ ep = ErrorPage()
+ view = QWebView()
+ view.setPage(ep)
+ view.load("foo://bar") # Some malformmed url
+ view.show()
+
+ # If the timeout is 0 the webpage isn't even loaded on Qt4.6-i386, so we use 100 :-)
+ QTimer.singleShot(100, app.quit)
+ app.exec_()
+
+ self.assertEqual(ep.rcv_extension, QWebPage.ErrorPageExtension)
+ self.assertRaises(RuntimeError, ep.rcv_url.__str__)
+
+ self.assertEqual(ep.rcv_url_copy, "foo://bar")
+ self.assertEqual(ep.rcv_option_type, QWebPage.ErrorPageExtensionOption)
+ self.assertEqual(ep.rcv_output_type, QWebPage.ErrorPageExtensionReturn)
+
+if __name__ == '__main__':
+ unittest.main()