mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-05 03:20:08 +01:00
Add some HtmlHelp unittests, and fix some issues discovered by the tests.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@72856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -35,8 +35,8 @@ INCLUDES = [
|
||||
'htmlwinpars',
|
||||
|
||||
'helpdata',
|
||||
'helpdlg',
|
||||
'helpfrm',
|
||||
'helpdlg',
|
||||
'helpwnd',
|
||||
'helpctrl',
|
||||
]
|
||||
|
||||
@@ -35,7 +35,17 @@ def run():
|
||||
c = module.find('wxHtmlHelpController')
|
||||
assert isinstance(c, etgtools.ClassDef)
|
||||
c.addPrivateCopyCtor()
|
||||
|
||||
|
||||
c.find('CreateHelpDialog').ignore(False)
|
||||
c.find('CreateHelpFrame').ignore(False)
|
||||
|
||||
c.addItem(etgtools.WigCode("""\
|
||||
// Add implementations for the pure virtuals in the base class
|
||||
virtual bool DisplayBlock(long blockNo);
|
||||
virtual bool DisplaySection(int sectionNo);
|
||||
virtual bool LoadFile(const wxString& file = wxEmptyString);
|
||||
virtual bool Quit();
|
||||
"""))
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
|
||||
@@ -38,6 +38,11 @@ def run():
|
||||
|
||||
c.find('SetController.controller').transfer = True
|
||||
|
||||
c.find('CreateSearch').ignore(False)
|
||||
c.find('AddToolbarButtons').ignore(False)
|
||||
c.find('CreateContents').ignore(False)
|
||||
c.find('CreateIndex').ignore(False)
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
|
||||
71
unittests/helpfiles/Index.hhk
Normal file
71
unittests/helpfiles/Index.hhk
Normal file
@@ -0,0 +1,71 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
||||
<!-- Sitemap 1.0 -->
|
||||
</HEAD><BODY>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="1">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Untitled: d:\HELPS\testing\main.htm">
|
||||
<param name="Local" value="main.htm">
|
||||
</OBJECT>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Nested 1">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Nested 2">
|
||||
<param name="Local" value="book2.htm">
|
||||
</OBJECT>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="MoreNested 1">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="MoreNested 2">
|
||||
<param name="Local" value="book2.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="MoreNested 3">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
</UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Nested 3">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
</UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="2">
|
||||
<param name="Local" value="book2.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="multiple">
|
||||
<param name="Local" value="book2.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="multiple">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Nested under multiple">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Nested under multiple 2">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
</UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="multiple">
|
||||
<param name="Local" value="main.htm">
|
||||
</OBJECT>
|
||||
</UL>
|
||||
</BODY></HTML>
|
||||
18
unittests/helpfiles/another.hhc
Normal file
18
unittests/helpfiles/another.hhc
Normal file
@@ -0,0 +1,18 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Sitemap 1.0 -->
|
||||
</HEAD><BODY>
|
||||
<OBJECT type="text/site properties">
|
||||
<param name="ImageType" value="Folder">
|
||||
</OBJECT>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Project file">
|
||||
<param name="Local" value="another.hhp">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Contents file">
|
||||
<param name="Local" value="another.hhc">
|
||||
</OBJECT>
|
||||
</UL>
|
||||
</BODY></HTML>
|
||||
6
unittests/helpfiles/another.hhp
Normal file
6
unittests/helpfiles/another.hhp
Normal file
@@ -0,0 +1,6 @@
|
||||
[OPTIONS]
|
||||
Compatibility=1.1
|
||||
Contents file=another.hhc
|
||||
Display compile progress=No
|
||||
Title=Another book
|
||||
Default topic=another.htm
|
||||
24
unittests/helpfiles/another.htm
Normal file
24
unittests/helpfiles/another.htm
Normal file
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Another HTML Help book</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Another book...</h1>
|
||||
Here's another book to demonstrate that
|
||||
<UL>
|
||||
<LI> You can display multiple books in a help controller
|
||||
<LI> You can selectively search books. Try it!
|
||||
<LI> Index files are optional. This book doesn't supply an index, but it does supply
|
||||
a contents (.hhc) file. You must always supply a contents file because
|
||||
<UL>
|
||||
<LI> Contents trees rule :-)
|
||||
<LI> The search algorithm uses the contents tree to find out which pages are
|
||||
available.
|
||||
</UL>
|
||||
Wanna know what a contents file looks like? Click <a href="another.hhc">here</a>
|
||||
</UL>
|
||||
You can also view the <a href="another.hhp">project file</a> for this book.
|
||||
</body>
|
||||
</html>
|
||||
4
unittests/helpfiles/book1.htm
Normal file
4
unittests/helpfiles/book1.htm
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><title>Book 1</title><body>
|
||||
<h2>Book 1.</h2>
|
||||
How do you enjoy <i> book one</i>??
|
||||
</body></html>
|
||||
5
unittests/helpfiles/book2.htm
Normal file
5
unittests/helpfiles/book2.htm
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><title>Book 1</title><body>
|
||||
<h2>Book 2.</h2>
|
||||
How do you enjoy <i> book two</i>??
|
||||
<p>Please click <a href="page2-b.htm">HERE</a>
|
||||
</body></html>
|
||||
28
unittests/helpfiles/contents.hhc
Normal file
28
unittests/helpfiles/contents.hhc
Normal file
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
||||
<!-- Sitemap 1.0 -->
|
||||
</HEAD><BODY>
|
||||
<OBJECT type="text/site properties">
|
||||
<param name="ImageType" value="Folder">
|
||||
</OBJECT>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Book 1">
|
||||
<param name="Local" value="book1.htm">
|
||||
</OBJECT>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="Book 2">
|
||||
<param name="ID" value=34>
|
||||
<param name="Local" value="book2.htm">
|
||||
</OBJECT>
|
||||
<UL>
|
||||
<LI> <OBJECT type="text/sitemap">
|
||||
<param name="Name" value="sub book">
|
||||
<param name="Local" value="page2-b.htm">
|
||||
</OBJECT>
|
||||
</UL>
|
||||
</UL>
|
||||
</BODY></HTML>
|
||||
|
||||
5
unittests/helpfiles/main.htm
Normal file
5
unittests/helpfiles/main.htm
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
<h2>This is main page.</h2>
|
||||
<a href="book1.htm">Book 1</a><br>
|
||||
<a href="book2.htm">Book 2</a><br>
|
||||
</body></html>
|
||||
5
unittests/helpfiles/page2-b.htm
Normal file
5
unittests/helpfiles/page2-b.htm
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
<font color="#FF0000" size=+4 face="Tahoma">
|
||||
Hello, you're on sub page of page 2 !!!
|
||||
</font>
|
||||
</body></html>
|
||||
16
unittests/helpfiles/testing.hhp
Normal file
16
unittests/helpfiles/testing.hhp
Normal file
@@ -0,0 +1,16 @@
|
||||
[OPTIONS]
|
||||
Compatibility=1.1
|
||||
Compiled file=testing.chm
|
||||
Contents file=contents.hhc
|
||||
Display compile progress=No
|
||||
Index file=Index.hhk
|
||||
Language=0x405 Èesky
|
||||
Title=Test HELPFILE
|
||||
Default topic=main.htm
|
||||
|
||||
[FILES]
|
||||
main.htm
|
||||
book1.htm
|
||||
book2.htm
|
||||
page2-b.htm
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
import wx.html
|
||||
|
||||
import os
|
||||
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class helpctrl_Tests(wtc.WidgetTestCase):
|
||||
|
||||
# TODO: Remove this test and add real ones.
|
||||
def test_helpctrl1(self):
|
||||
self.fail("Unit tests for helpctrl not implemented yet.")
|
||||
hc = wx.html.HtmlHelpController(parentWindow=self.frame)
|
||||
hc.AddBook(os.path.join(helpPath, 'testing.hhp'))
|
||||
hc.AddBook(os.path.join(helpPath, 'another.hhp'))
|
||||
hc.SetShouldPreventAppExit(False)
|
||||
|
||||
hc.DisplayContents()
|
||||
self.myYield()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,15 +1,66 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
import wx.html
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class helpdata_Tests(wtc.WidgetTestCase):
|
||||
|
||||
# TODO: Remove this test and add real ones.
|
||||
def test_helpdata1(self):
|
||||
self.fail("Unit tests for helpdata not implemented yet.")
|
||||
obj = wx.html.HtmlBookRecord("file", "path", "title", "start")
|
||||
|
||||
def test_helpdata2(self):
|
||||
obj = wx.html.HtmlHelpDataItem()
|
||||
|
||||
def test_helpdata3(self):
|
||||
obj = wx.html.HtmlHelpData()
|
||||
|
||||
|
||||
def test_helpdata4(self):
|
||||
wx.html.HF_TOOLBAR,
|
||||
wx.html.HF_CONTENTS,
|
||||
wx.html.HF_INDEX,
|
||||
wx.html.HF_SEARCH,
|
||||
wx.html.HF_BOOKMARKS,
|
||||
wx.html.HF_OPEN_FILES,
|
||||
wx.html.HF_PRINT,
|
||||
wx.html.HF_FLAT_TOOLBAR,
|
||||
wx.html.HF_MERGE_BOOKS,
|
||||
wx.html.HF_ICONS_BOOK,
|
||||
wx.html.HF_ICONS_BOOK_CHAPTER,
|
||||
wx.html.HF_ICONS_FOLDER,
|
||||
wx.html.HF_DEFAULT_STYLE,
|
||||
wx.html.HF_EMBEDDED,
|
||||
wx.html.HF_DIALOG,
|
||||
wx.html.HF_FRAME,
|
||||
wx.html.HF_MODAL,
|
||||
wx.html.ID_HTML_PANEL,
|
||||
wx.html.ID_HTML_BACK,
|
||||
wx.html.ID_HTML_FORWARD,
|
||||
wx.html.ID_HTML_UPNODE,
|
||||
wx.html.ID_HTML_UP,
|
||||
wx.html.ID_HTML_DOWN,
|
||||
wx.html.ID_HTML_PRINT,
|
||||
wx.html.ID_HTML_OPENFILE,
|
||||
wx.html.ID_HTML_OPTIONS,
|
||||
wx.html.ID_HTML_BOOKMARKSLIST,
|
||||
wx.html.ID_HTML_BOOKMARKSADD,
|
||||
wx.html.ID_HTML_BOOKMARKSREMOVE,
|
||||
wx.html.ID_HTML_TREECTRL,
|
||||
wx.html.ID_HTML_INDEXPAGE,
|
||||
wx.html.ID_HTML_INDEXLIST,
|
||||
wx.html.ID_HTML_INDEXTEXT,
|
||||
wx.html.ID_HTML_INDEXBUTTON,
|
||||
wx.html.ID_HTML_INDEXBUTTONALL,
|
||||
wx.html.ID_HTML_NOTEBOOK,
|
||||
wx.html.ID_HTML_SEARCHPAGE,
|
||||
wx.html.ID_HTML_SEARCHTEXT,
|
||||
wx.html.ID_HTML_SEARCHLIST,
|
||||
wx.html.ID_HTML_SEARCHBUTTON,
|
||||
wx.html.ID_HTML_SEARCHCHOICE,
|
||||
wx.html.ID_HTML_COUNTINFO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
import wx.html
|
||||
|
||||
import os
|
||||
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class helpdlg_Tests(wtc.WidgetTestCase):
|
||||
|
||||
# TODO: Remove this test and add real ones.
|
||||
def test_helpdlg1(self):
|
||||
self.fail("Unit tests for helpdlg not implemented yet.")
|
||||
data = wx.html.HtmlHelpData()
|
||||
data.AddBook(os.path.join(helpPath, 'testing.hhp'))
|
||||
data.AddBook(os.path.join(helpPath, 'another.hhp'))
|
||||
dlg = wx.html.HtmlHelpDialog(data)
|
||||
|
||||
self.myYield()
|
||||
dlg.Destroy()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,14 +1,28 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
import wx.html
|
||||
|
||||
import os
|
||||
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class helpfrm_Tests(wtc.WidgetTestCase):
|
||||
|
||||
# TODO: Remove this test and add real ones.
|
||||
def test_helpfrm1(self):
|
||||
self.fail("Unit tests for helpfrm not implemented yet.")
|
||||
data = wx.html.HtmlHelpData()
|
||||
data.AddBook(os.path.join(helpPath, 'testing.hhp'))
|
||||
data.AddBook(os.path.join(helpPath, 'another.hhp'))
|
||||
|
||||
hc = wx.html.HtmlHelpController()
|
||||
frm = wx.html.HtmlHelpFrame(data)
|
||||
frm.SetController(hc)
|
||||
frm.Create(self.frame, -1)
|
||||
frm.Show()
|
||||
|
||||
self.myYield()
|
||||
frm.Close()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,14 +1,27 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
import wx.html
|
||||
|
||||
import os
|
||||
helpPath = os.path.join(os.path.dirname(__file__), 'helpfiles')
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class helpwnd_Tests(wtc.WidgetTestCase):
|
||||
|
||||
# TODO: Remove this test and add real ones.
|
||||
def test_helpwnd1(self):
|
||||
self.fail("Unit tests for helpwnd not implemented yet.")
|
||||
hc = wx.html.HtmlHelpController(wx.html.HF_EMBEDDED)
|
||||
hw = wx.html.HtmlHelpWindow()
|
||||
hc.SetHelpWindow(hw)
|
||||
hw.Create(self.frame)
|
||||
hc.AddBook(os.path.join(helpPath, 'testing.hhp'))
|
||||
hc.AddBook(os.path.join(helpPath, 'another.hhp'))
|
||||
|
||||
self.frame.SendSizeEvent()
|
||||
self.myYield()
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
|
||||
68
unittests/test_htmldefs.py
Normal file
68
unittests/test_htmldefs.py
Normal file
@@ -0,0 +1,68 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
import wx.html
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class htmldefs_Tests(wtc.WidgetTestCase):
|
||||
|
||||
def test_htmldefs1(self):
|
||||
wx.html.HTML_ALIGN_LEFT
|
||||
wx.html.HTML_ALIGN_CENTER
|
||||
wx.html.HTML_ALIGN_RIGHT
|
||||
wx.html.HTML_ALIGN_BOTTOM
|
||||
wx.html.HTML_ALIGN_TOP
|
||||
wx.html.HTML_CLR_FOREGROUND
|
||||
wx.html.HTML_CLR_BACKGROUND
|
||||
wx.html.HTML_UNITS_PIXELS
|
||||
wx.html.HTML_UNITS_PERCENT
|
||||
wx.html.HTML_INDENT_LEFT
|
||||
wx.html.HTML_INDENT_RIGHT
|
||||
wx.html.HTML_INDENT_TOP
|
||||
wx.html.HTML_INDENT_BOTTOM
|
||||
wx.html.HTML_INDENT_HORIZONTAL
|
||||
wx.html.HTML_INDENT_VERTICAL
|
||||
wx.html.HTML_INDENT_ALL
|
||||
wx.html.HTML_COND_ISANCHOR
|
||||
wx.html.HTML_COND_ISIMAGEMAP
|
||||
wx.html.HTML_COND_USER
|
||||
wx.html.HW_SCROLLBAR_NEVER
|
||||
wx.html.HW_SCROLLBAR_AUTO
|
||||
wx.html.HW_NO_SELECTION
|
||||
wx.html.HW_DEFAULT_STYLE
|
||||
wx.html.HTML_OPEN
|
||||
wx.html.HTML_BLOCK
|
||||
wx.html.HTML_REDIRECT
|
||||
wx.html.HTML_URL_PAGE
|
||||
wx.html.HTML_URL_IMAGE
|
||||
wx.html.HTML_URL_OTHER
|
||||
|
||||
wx.html.HTML_ALIGN_LEFT
|
||||
wx.html.HTML_ALIGN_RIGHT
|
||||
wx.html.HTML_ALIGN_JUSTIFY
|
||||
wx.html.HTML_ALIGN_TOP
|
||||
wx.html.HTML_ALIGN_BOTTOM
|
||||
wx.html.HTML_ALIGN_CENTER
|
||||
wx.html.HTML_CLR_FOREGROUND
|
||||
wx.html.HTML_CLR_BACKGROUND
|
||||
wx.html.HTML_CLR_TRANSPARENT_BACKGROUND
|
||||
wx.html.HTML_UNITS_PIXELS
|
||||
wx.html.HTML_UNITS_PERCENT
|
||||
wx.html.HTML_INDENT_LEFT
|
||||
wx.html.HTML_INDENT_RIGHT
|
||||
wx.html.HTML_INDENT_TOP
|
||||
wx.html.HTML_INDENT_BOTTOM
|
||||
wx.html.HTML_INDENT_HORIZONTAL
|
||||
wx.html.HTML_INDENT_VERTICAL
|
||||
wx.html.HTML_INDENT_ALL
|
||||
wx.html.HTML_COND_ISANCHOR
|
||||
wx.html.HTML_COND_ISIMAGEMAP
|
||||
wx.html.HTML_COND_USER
|
||||
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user