From e4b9192dc1562bf5f3867a41c741360ea4986fef Mon Sep 17 00:00:00 2001 From: Bartek Kostrzewa Date: Sun, 31 May 2009 00:10:58 +0400 Subject: [PATCH] [tests] Test for printer settings Added test for printer settings. Fixes GNOME bug #583976. --- test/3-page.pdf | Bin 0 -> 8222 bytes test/4-page.pdf | Bin 0 -> 8790 bytes test/test-print-combinations.py | 199 ++++++++++++++++++++++++++++++++ 3 files changed, 199 insertions(+) create mode 100644 test/3-page.pdf create mode 100644 test/4-page.pdf create mode 100755 test/test-print-combinations.py diff --git a/test/3-page.pdf b/test/3-page.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78eb41beebb8dc586a63306ce0438fc229cd5e51 GIT binary patch literal 8222 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

2@8 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 LLPBZ=>VW?PRI;Vo literal 0 HcmV?d00001 diff --git a/test/test-print-combinations.py b/test/test-print-combinations.py new file mode 100755 index 00000000..5d56e2bc --- /dev/null +++ b/test/test-print-combinations.py @@ -0,0 +1,199 @@ +#!/usr/bin/python + +# Test various print setting combinations +# To run this successfully you need to make some preparations. First of all, +# you need to open evince and make sure that: +# * the printer is set to "Print to File" +# (I think) we are unable to select the "Print to File" line from the table + +import os +# i'm note sure why this is required but it seems to break i18n if it is not commented out +# os.environ['LANG']='C' +homedir = os.environ["HOME"] + "/"; + +from dogtail.procedural import * +import dogtail.tree +import dogtail.predicate + +#~ uncommenting the import and load below should enable you to run this on any language +#~ If you are testing a different language than English run the test like so: +#~ LANG=xx_XX.YYY ./test-print-combinations.py + +# import dogtail.i18n +# dogtail.i18n.loadTranslationsFromPackageMoFiles('evince') + +#~ test setting lists: customize these to your liking, the comment above each +#~ displays possible AND/OR default values + +#~ copies = [1,2,3,4,....,n] # does not need to be sequential +copies = [3,1] + +#~ collate [0,1] +collate = [1,0] + +#~ reverse = [0,1] +reverse = [1,0] + +#~ pages_per_sheet = [1,2,4,6,9,16] +pages_per_sheet = [1,4,9] + +#~ only_print = ["All sheets","Even sheets","Odd sheets"] +only_print = ["All sheets","Even sheets","Odd sheets"] + +#~ output_type = ["pdf","ps"] +output_type = ["pdf"] + +#~ if you prepare more test documents with different numbers of pages, +#~ you can add them here, the test documents must be saved as n-page.pdf +#~ where n stands for the number of pages + +#~ pages_in_document = [3,4] +pages_in_document = [3,4] + +# all pages in a document, an even range, an odd range +#~ ranges = ["all","1-3,2-3,1","1-2,2-3,1-3"] +ranges = ["all","1-3,2-3,1","1-2,2-3,1-3"] + +counter = 0 +# estimate number of iterations the test will require, this will be lower because we don't run (col == 1 && cop == 1) +n_tests = len(copies) * len(collate) * len(reverse) * len(pages_per_sheet) * len(only_print) * len(output_type) * len(pages_in_document) * len(ranges) + +#~ function: build_filename +def build_filename( pages, cop, pps, col, rev, rng, op, ot ): + result = "pid_" + str(pages) + "_cop_" + str(cop) + "_pps_" + str(pps) + "_col_" + str(col) + "_rev_" + str(rev) + + result += "_sheets" + if op == "All sheets": + result += "_all" + elif op == "Even sheets": + result += "_even" + else: + result += "_odd" + + result += "_rng" + if rng == "all": + result += "_all" + elif rng == "1-3,2-3,1": + result += "_even" + else: + result += "_odd" + + result += "." + result += str(ot) + return result +#~ ///function: build_filename + + + +#~ function: run_test +def run_test( pages, cop, pps, col, rev, rng, op, ot ): + filename = build_filename( pages, cop, pps, col, rev, rng, op, ot ) + + #~ we don't want the "file exists" dialog to pop up: + #~ delete the file if it already exists, potentially dangerous if filename + #~ is zero so we check for nonzero length at least + if ( os.path.exists(homedir + filename) and (len(filename) != 0) ): + os.unlink(homedir + filename) + + evince = tree.root.application('evince') + + click('File', roleName='menu') + click('Print...', roleName='menu item') + + dlg = evince.dialog('Print') + + #~ This doesn't work, even if rewritten as in test6.py or test7.py + #~ click(name='Print to File', roleName='table cell', raw=True) + + focus.widget(roleName='page tab', name='General') + focus.widget.node.select() + + dlg.child( roleName='text' ).text = filename + + if ot == "pdf": + click('PDF', roleName='radio button') + else: + click('Postscript', roleName='radio button') + + + if rng == "all": + click('All Pages', roleName='radio button') + else: + click('Pages:', roleName='radio button') + dlg.child('Pages', roleName='text').text = rng + + + sb_copies = dlg.child( roleName='spin button' ) + sb_copies.text = str(cop) + # activate must be called to actualize the new setting + sb_copies.doAction("activate") + + + cb_reverse = dlg.child('Reverse', roleName='check box') + if (rev == 1 and cb_reverse.checked == False): + cb_reverse.click() + elif (rev == 0 and cb_reverse.checked == True): + cb_reverse.click() + + cb_collate = dlg.child('Collate', roleName='check box') + if (col == 1 and cb_collate.checked == False): + cb_collate.click() + elif (col == 0 and cb_collate.checked == True): + cb_collate.click() + + focus.widget(roleName='page tab', name='Page Setup') + focus.widget.node.select() + + #~ Set pages per sheet: + #~ This will break at some point if there is more than one numeric combo box + #~ it will also not work for languages with other numerals + #~ The for loops here are necessary because the name of these combo boxes + #~ is based on their current value and they have no 'label' attribute + + # Redefining this here so that changing pages_per_sheet above does not affect our search + local_pages_per_sheet = [1,2,4,6,9,16] + for x in local_pages_per_sheet: + pred = dogtail.predicate.GenericPredicate( name = str(x), roleName='combo box' ) + if dlg.findChild( pred, retry=False, requireResult=False): + # dlg.child( str(x), roleName='combo box').combovalue = str(pps) + # we've found what we're looking for, no need to continue the loop + break + + # Redefining this here so that changing only_print above does not affect our search + local_only_print = ["All sheets","Even sheets","Odd sheets"] + for x in local_only_print: + pred = dogtail.predicate.GenericPredicate( name = str(x), roleName='combo box' ) + if dlg.findChild( pred, retry=False, requireResult=False): + dlg.child( str(x), roleName='combo box').combovalue = str(op) + # we've found what we're looking for, no need to continue the loop + break + + #~ We're done setting up, start the print job + click('Print', roleName='push button') +#~ ///function: run_test + + + + +#~ The test loop. +for ot in output_type: + for pages in pages_in_document: + # the filename which is opened depends on 'pages' + app = run('evince', arguments=' ' + str(pages) + "-page.pdf") + for rev in reverse: + for col in collate: + for cop in copies: + #no sense in testing collate with 1 copy! it is equivalent to 1 uncollated + if (cop == 1 and col == 1): + continue + for rng in ranges: + for pps in pages_per_sheet: + for op in only_print: + counter += 1 + print str(counter) + " of " + str(n_tests) + run_test( pages, cop, pps, col, rev, rng, op, ot ) + click('File',roleName='menu') + click('Close',roleName='menu item') + +#~ we should be done now. + -- 2.43.5