Commit 129c5ebe authored by Terry Jan Reedy's avatar Terry Jan Reedy

Issue #21477: Add htests for Search and Replace dialogs.

Patch by Saimadhav Heblikar.
parent f627308c
...@@ -187,3 +187,34 @@ class ReplaceDialog(SearchDialogBase): ...@@ -187,3 +187,34 @@ class ReplaceDialog(SearchDialogBase):
def close(self, event=None): def close(self, event=None):
SearchDialogBase.close(self, event) SearchDialogBase.close(self, event)
self.text.tag_remove("hit", "1.0", "end") self.text.tag_remove("hit", "1.0", "end")
def _replace_dialog(parent):
root = Tk()
root.title("Test ReplaceDialog")
width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
root.geometry("+%d+%d"%(x, y + 150))
# mock undo delegator methods
def undo_block_start():
pass
def undo_block_stop():
pass
text = Text(root)
text.undo_block_start = undo_block_start
text.undo_block_stop = undo_block_stop
text.pack()
text.insert("insert","This is a sample string.\n"*10)
def show_replace():
text.tag_add(SEL, "1.0", END)
replace(text)
text.tag_remove(SEL, "1.0", END)
button = Button(root, text="Replace", command=show_replace)
button.pack()
if __name__ == '__main__':
from idlelib.idle_test.htest import run
run(_replace_dialog)
...@@ -65,3 +65,25 @@ class SearchDialog(SearchDialogBase): ...@@ -65,3 +65,25 @@ class SearchDialog(SearchDialogBase):
if pat: if pat:
self.engine.setcookedpat(pat) self.engine.setcookedpat(pat)
return self.find_again(text) return self.find_again(text)
def _search_dialog(parent):
root = Tk()
root.title("Test SearchDialog")
width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
root.geometry("+%d+%d"%(x, y + 150))
text = Text(root)
text.pack()
text.insert("insert","This is a sample string.\n"*10)
def show_find():
text.tag_add(SEL, "1.0", END)
s = _setup(text)
s.open(text)
text.tag_remove(SEL, "1.0", END)
button = Button(root, text="Search", command=show_find)
button.pack()
if __name__ == '__main__':
from idlelib.idle_test.htest import run
run(_search_dialog)
...@@ -454,20 +454,11 @@ def _tree_widget(parent): ...@@ -454,20 +454,11 @@ def _tree_widget(parent):
root.title("Test TreeWidget") root.title("Test TreeWidget")
width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
root.geometry("+%d+%d"%(x, y + 150)) root.geometry("+%d+%d"%(x, y + 150))
# test with scrollable canvas
sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1) sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side=LEFT) sc.frame.pack(expand=1, fill="both", side=LEFT)
item = FileTreeItem(os.getcwd()) item = FileTreeItem(os.getcwd())
node = TreeNode(sc.canvas, None, item) node = TreeNode(sc.canvas, None, item)
node.expand() node.expand()
# test without scrollable canvas
canvas = Canvas(root, bg="white", highlightthickness=0)
canvas.pack(expand=0, fill="both", side=RIGHT)
item = FileTreeItem(os.getcwd())
node = TreeNode(canvas, None, item)
node.update()
root.mainloop() root.mainloop()
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -181,6 +181,22 @@ _percolator_spec = { ...@@ -181,6 +181,22 @@ _percolator_spec = {
"Test for actions like text entry, and removal." "Test for actions like text entry, and removal."
} }
_replace_dialog_spec = {
'file': 'ReplaceDialog',
'kwds': {},
'msg': "Click the 'Replace' button.\n"
"Test various replace options in the 'Replace dialog'.\n"
"Click [Close] or [X] to close to the 'Replace Dialog'."
}
_search_dialog_spec = {
'file': 'SearchDialog',
'kwds': {},
'msg': "Click the 'Search' button.\n"
"Test various search options in the 'Search dialog'.\n"
"Click [Close] or [X] to close to the 'Search Dialog'."
}
_scrolled_list_spec = { _scrolled_list_spec = {
'file': 'ScrolledList', 'file': 'ScrolledList',
'kwds': {}, 'kwds': {},
...@@ -227,9 +243,7 @@ _tooltip_spec = { ...@@ -227,9 +243,7 @@ _tooltip_spec = {
_tree_widget_spec = { _tree_widget_spec = {
'file': 'TreeWidget', 'file': 'TreeWidget',
'kwds': {}, 'kwds': {},
'msg': "You should see two canvases side-by-side.\n" 'msg': "The canvas is scrollable.\n"
"The left canvas is scrollable.\n"
"The right canvas is not scrollable.\n"
"Click on folders upto to the lowest level." "Click on folders upto to the lowest level."
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment