From deefa3508703537c318d18e5da2df57ae19a70bd Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Wed, 23 Mar 2011 13:31:35 -0300 Subject: Fix bug 694 - "QWebPage::extensions need injected overloads due to required casts on C++ version" --- tests/QtWebKit/CMakeLists.txt | 1 + tests/QtWebKit/bug_694.py | 50 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 tests/QtWebKit/bug_694.py (limited to 'tests') 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() -- cgit v1.2.3