| 1 | # Based on iwidgets2.2.0/tests/scrolledlistbox.test code. |
| 2 | |
| 3 | import Tkinter |
| 4 | import Test |
| 5 | import Pmw |
| 6 | |
| 7 | Test.initialise() |
| 8 | |
| 9 | c = Pmw.ScrolledListBox |
| 10 | |
| 11 | def _testYView(doBottom): |
| 12 | w = Test.currentWidget() |
| 13 | top, bottom = w.yview() |
| 14 | if type(top) != type(0.0) or type(bottom) != type(0.0): |
| 15 | return 'bad type ' + str(top) + ' ' + str(bottom) |
| 16 | if doBottom: |
| 17 | if bottom != 1.0: |
| 18 | return 'bottom is ' + str(bottom) |
| 19 | else: |
| 20 | if top != 0.0: |
| 21 | return 'top is ' + str(top) |
| 22 | |
| 23 | kw_1 = { |
| 24 | 'labelpos': 'n', |
| 25 | 'label_text': 'Start', |
| 26 | 'listbox_height' : 20, |
| 27 | 'listbox_width' : 40 |
| 28 | } |
| 29 | tests_1 = ( |
| 30 | (c.pack, (), {'padx' : 10, 'pady' : 10, 'fill' : 'both', 'expand' : 1}), |
| 31 | (Test.num_options, (), 9), |
| 32 | ('label_text', 'ScrolledListBox'), |
| 33 | ('listbox_height', 6), |
| 34 | ('listbox_width', 20), |
| 35 | ('listbox_borderwidth', 3), |
| 36 | ('hscrollmode', 'none'), |
| 37 | ('hscrollmode', 'static'), |
| 38 | ('hscrollmode', 'dynamic'), |
| 39 | (c.delete, (0, 'end')), |
| 40 | (c.insert, ('end', 'Hello', 'World')), |
| 41 | ('listbox_relief', 'raised'), |
| 42 | ('listbox_relief', 'sunken'), |
| 43 | ('Scrollbar_width', 20), |
| 44 | ('Scrollbar_width', 15), |
| 45 | ('listbox_background', 'GhostWhite'), |
| 46 | ('listbox_selectborderwidth', 3), |
| 47 | ('listbox_selectforeground', 'blue'), |
| 48 | ('listbox_selectmode', 'browse'), |
| 49 | ('listbox_selectmode', 'extended'), |
| 50 | ('listbox_selectmode', 'single'), |
| 51 | ('listbox_selectmode', 'multiple'), |
| 52 | ('listbox_font', Test.font['small']), |
| 53 | ('vscrollmode', 'none'), |
| 54 | ('vscrollmode', 'static'), |
| 55 | ('vscrollmode', 'dynamic'), |
| 56 | ('listbox_width', 30), |
| 57 | ('listbox_height', 20), |
| 58 | ('vscrollmode', 'bogus', 'ValueError: bad vscrollmode option "bogus": ' + \ |
| 59 | 'should be static, dynamic, or none'), |
| 60 | ('hscrollmode', 'bogus', 'ValueError: bad hscrollmode option "bogus": ' + \ |
| 61 | 'should be static, dynamic, or none'), |
| 62 | (c.cget, 'vscrollmode', 'bogus'), |
| 63 | (c.cget, 'hscrollmode', 'bogus'), |
| 64 | ('vscrollmode', 'dynamic'), |
| 65 | ('hscrollmode', 'dynamic'), |
| 66 | (c.insert, (0, 'Test', 'Test', 'Test', 'Test')), |
| 67 | (c.insert, ('end', 'More Test')), |
| 68 | (c.delete, 1), |
| 69 | (c.delete, (0, 3)), |
| 70 | ('listbox_exportselection', 0), |
| 71 | (c.select_set, 0), |
| 72 | (c.select_set, (0, 1)), |
| 73 | (c.getcurselection, (), ('World', 'More Test')), |
| 74 | (c.select_clear, (0, 'end')), |
| 75 | (c.getcurselection, (), ()), |
| 76 | (c.delete, (0, 'end')), |
| 77 | (c.get, (0, 'end'), ()), |
| 78 | (c.insert, ('end', 'Test', 'Test', 'Long String Test')), |
| 79 | (c.get, (0, 'end'), ('Test', 'Test', 'Long String Test')), |
| 80 | (c.insert, (0, 'Test', 'Test A')), |
| 81 | (c.get, (0, 'end'), ('Test', 'Test A', 'Test', 'Test', 'Long String Test')), |
| 82 | (c.insert, (1, 'Test', 'Test', 'Long String Test')), |
| 83 | (c.get, (0, 4), ('Test', 'Test', 'Test', 'Long String Test', 'Test A')), |
| 84 | (c.insert, (5, 'Test', 'Test', |
| 85 | 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')), |
| 86 | (c.get, 7, 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'), |
| 87 | (c.get, 'end', 'Long String Test'), |
| 88 | (c.size, (), 11), |
| 89 | (c.delete, (3, 2)), |
| 90 | (c.size, (), 11), |
| 91 | (c.delete, (3, 3)), |
| 92 | (c.size, (), 10), |
| 93 | (c.clear, ()), |
| 94 | (c.size, (), 0), |
| 95 | (c.get, (), ()), |
| 96 | (c.yview, ('moveto', 0.0)), |
| 97 | (_testYView, 0), |
| 98 | (c.insert, ('end', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10')), |
| 99 | (c.insert, ('end', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10')), |
| 100 | (c.insert, ('end', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10')), |
| 101 | (c.insert, ('end', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10')), |
| 102 | (_testYView, 0), |
| 103 | (c.yview, ('moveto', 0.02)), |
| 104 | (c.yview, ('moveto', 0.04)), |
| 105 | (c.yview, ('moveto', 0.06)), |
| 106 | (c.yview, ('moveto', 0.08)), |
| 107 | (c.yview, ('moveto', 0.10)), |
| 108 | (c.yview, ('moveto', 0.12)), |
| 109 | (c.yview, ('moveto', 0.14)), |
| 110 | (c.yview, ('moveto', 0.16)), |
| 111 | (c.yview, ('moveto', 0.18)), |
| 112 | (c.yview, ('moveto', 0.20)), |
| 113 | (c.yview, ('moveto', 0.22)), |
| 114 | (c.yview, ('moveto', 0.24)), |
| 115 | (c.yview, ('moveto', 0.26)), |
| 116 | (c.yview, ('moveto', 0.28)), |
| 117 | (c.yview, ('moveto', 0.98)), |
| 118 | (_testYView, 1), |
| 119 | (c.yview, ('scroll', -1, 'page')), |
| 120 | (c.yview, ('scroll', -1, 'page')), |
| 121 | (c.yview, ('scroll', -1, 'page')), |
| 122 | (_testYView, 0), |
| 123 | (c.yview, ('scroll', 1, 'page')), |
| 124 | (c.yview, ('scroll', 1, 'page')), |
| 125 | (c.yview, ('scroll', 1, 'page')), |
| 126 | (_testYView, 1), |
| 127 | ) |
| 128 | |
| 129 | tests_2 = ( |
| 130 | (c.pack, (), {'padx' : 10, 'pady' : 10, 'fill' : 'both', 'expand' : 1}), |
| 131 | ) |
| 132 | |
| 133 | alltests = [(tests_1, kw_1)] |
| 134 | |
| 135 | poslist = ('nw', 'n', 'ne', 'en', 'e', 'es', 'se', 's', 'sw', 'ws', 'w', 'wn',) |
| 136 | for pos in poslist: |
| 137 | kw_2 = { |
| 138 | 'listbox_selectmode' : 'extended', |
| 139 | 'items' : ('Hello', 'Out There', 'World'), |
| 140 | 'vscrollmode' : 'static', |
| 141 | 'hscrollmode' : 'dynamic', |
| 142 | 'label_text' : 'List', |
| 143 | 'labelpos' : pos, |
| 144 | 'scrollmargin': 10, |
| 145 | } |
| 146 | alltests.append((tests_2, kw_2)) |
| 147 | |
| 148 | testData = ((c, alltests),) |
| 149 | |
| 150 | if __name__ == '__main__': |
| 151 | Test.runTests(testData) |