# # "$Id$" # # IPP/1.1 test suite. # # Copyright 2007-2012 by Apple Inc. # Copyright 2001-2006 by Easy Software Products. All rights reserved. # # These coded instructions, statements, and computer programs are the # property of Apple Inc. and are protected by Federal copyright # law. Distribution and use rights are outlined in the file "LICENSE.txt" # which should have been included with this file. If this file is # file is missing or damaged, see the license at "http://www.cups.org/". # # Usage: # # ./ipptool -f filename [-d document-uri=SOMEURI] -t printer-uri ipp-1.1.test # ./ipptool -f filename -d NOPRINT=1 -t printer-uri ipp-1.1.test # # The latter form disables all but the basic file printing. # # Regular expressions for URI schemes: # # HTTP_URI_SCHEME - Matches strings beginning with http:// or https:// # IPP_URI_SCHEME - Matches strings beginning with ipp:// or ipps:// DEFINE HTTP_URI_SCHEME "/^https?://.+$$/" DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # Test that a request-id value of 0 is not accepted. # # Required by: RFC 2911 section 3.1.1 { NAME "RFC 2911 section 3.1.1: Bad request-id value 0" REQUEST-ID 0 OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri STATUS client-error-bad-request EXPECT !printer-uri-supported } # Test that the first two attributes must be attributes-charset and # attributes-natural-language. # # Required by: RFC 2911 section 3.1.4 { NAME "RFC 2911 section 3.1.4: No Operation Attributes" REQUEST-ID random OPERATION Get-Printer-Attributes GROUP operation-attributes-tag STATUS client-error-bad-request EXPECT !printer-uri-supported } { NAME "RFC 2911 section 3.1.4: attributes-charset" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR uri printer-uri $uri STATUS client-error-bad-request EXPECT !printer-uri-supported } { NAME "RFC 2911 section 3.1.4: attributes-natural-language" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri STATUS client-error-bad-request EXPECT !printer-uri-supported } { NAME "RFC 2911 section 3.1.4: attributes-natural-language + attributes-charset" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR naturalLanguage attributes-natural-language en ATTR charset attributes-charset utf-8 ATTR uri printer-uri $uri STATUS client-error-bad-request EXPECT !printer-uri-supported } { NAME "RFC 2911 section 3.1.4: attributes-charset + attributes-natural-language" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri STATUS successful-ok EXPECT printer-uri-supported OF-TYPE uri WITH-ALL-VALUES "$IPP_URI_SCHEME" } # Test that bad IPP versions are not supported. # # Required by: RFC 2911 section 3.1.8 { # The name of the test... NAME "RFC 2911 section 3.1.8: Unsupported IPP version 0.0" VERSION 0.0 OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri STATUS server-error-version-not-supported EXPECT !printer-uri-supported } # Test that printer operations require the printer-uri operation attribute. # # Required by: RFC 2911 section 3.2 { NAME "RFC 2911 section 3.2: No printer-uri operation attribute" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en STATUS client-error-bad-request EXPECT !printer-uri-supported } # Test Print-Job operation # # Required by: RFC 2911 section 3.2.1 { NAME "RFC 2911 section 3.2.1: Print-Job Operation" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype FILE $filename STATUS successful-ok STATUS client-error-document-format-not-supported STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state WITH-VALUE 7,8,9 DEFINE-MATCH PRINT_JOB_COMPLETED EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test Validate-Job operation # # Required by: RFC 2911 section 3.2.3 { NAME "RFC 2911 section 3.2.3: Validate-Job Operation" OPERATION Validate-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype STATUS successful-ok } # Test Get-Printer-Attributes operation # # Required by: RFC 2911 section 3.2.5 { NAME "RFC 2911 section 3.2.5: Get-Printer-Attributes Operation (default)" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR mimeMediaType document-format $filetype STATUS successful-ok # Display some useful information to identify the test DISPLAY color-supported DISPLAY compression-supported DISPLAY document-format-supported DISPLAY finishings-supported DISPLAY ipp-versions-supported DISPLAY job-sheets-supported DISPLAY media-supported DISPLAY number-up-supported DISPLAY operations-supported DISPLAY pages-per-minute DISPLAY pages-per-minute-color DISPLAY print-quality-supported DISPLAY printer-uri-supported DISPLAY reference-uri-schemes-supported DISPLAY sizes-supported DISPLAY uri-authentication-supported DISPLAY uri-security-supported # Operations EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 0x0002 # Print-Job EXPECT operations-supported WITH-VALUE 0x0003 DEFINE-MATCH OPTIONAL_PRINT_URI # Print-URI EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job EXPECT operations-supported WITH-VALUE 0x0005 DEFINE-MATCH OPTIONAL_CREATE_JOB # Create-Job EXPECT operations-supported WITH-VALUE 0x0006 DEFINE-MATCH OPTIONAL_SEND_DOCUMENT # Send-Document EXPECT operations-supported WITH-VALUE 0x0007 DEFINE-MATCH OPTIONAL_SEND_URI # Send-URI EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes EXPECT operations-supported WITH-VALUE 0x000c DEFINE-MATCH OPTIONAL_HOLD_JOB # Hold-Job EXPECT operations-supported WITH-VALUE 0x000d DEFINE-MATCH OPTIONAL_RELEASE_JOB # Release-Job EXPECT operations-supported WITH-VALUE 0x000e DEFINE-MATCH OPTIONAL_RESTART_JOB # Restart-Job EXPECT operations-supported WITH-VALUE 0x0010 DEFINE-MATCH OPTIONAL_PAUSE_PRINTER # Pause-Printer EXPECT operations-supported WITH-VALUE 0x0011 DEFINE-MATCH OPTIONAL_RESUME_PRINTER # Resume-Printer EXPECT operations-supported WITH-VALUE 0x0012 DEFINE-MATCH OPTIONAL_PURGE_JOBS # Purge-Jobs # Job template attributes EXPECT ?copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag EXPECT ?finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag EXPECT ?finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3 EXPECT ?job-hold-until-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?job-hold-until-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE no-hold EXPECT job-hold-until-default IF-DEFINED OPTIONAL_HOLD_JOB EXPECT job-hold-until-supported IF-DEFINED OPTIONAL_HOLD_JOB EXPECT ?job-priority-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 EXPECT ?job-priority-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 EXPECT ?job-sheets-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag EXPECT ?job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE none EXPECT ?media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag EXPECT ?media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag EXPECT ?multiple-document-handling-default OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" EXPECT ?multiple-document-handling-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" EXPECT ?number-up-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?number-up-supported OF-TYPE integer|rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 EXPECT ?number-up-supported WITH-VALUE 1 EXPECT ?orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 EXPECT ?orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6 EXPECT ?pages-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag EXPECT ?print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 EXPECT ?print-quality-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5 EXPECT ?printer-resolution-default OF-TYPE resolution IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?printer-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag EXPECT ?sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" EXPECT ?sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" # Job template attributes for specific tests... EXPECT copies-supported WITH-VALUE >1 DEFINE-MATCH OPTIONAL_COPIES EXPECT document-format-supported WITH-VALUE "application/pdf" DEFINE-MATCH OPTIONAL_PDF EXPECT document-format-supported WITH-VALUE "application/postscript" DEFINE-MATCH OPTIONAL_POSTSCRIPT EXPECT document-format-supported WITH-VALUE "image/jpeg" DEFINE-MATCH OPTIONAL_JPEG EXPECT job-sheets-supported WITH-VALUE "standard" DEFINE-MATCH OPTIONAL_STANDARD_SHEET EXPECT media-supported WITH-VALUE "a4" DEFINE-VALUE OPTIONAL_A4_MEDIA EXPECT media-supported WITH-VALUE "iso-a4" DEFINE-VALUE OPTIONAL_A4_MEDIA EXPECT media-supported WITH-VALUE "iso_a4_210x297mm" DEFINE-VALUE OPTIONAL_A4_MEDIA EXPECT media-supported WITH-VALUE "letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA EXPECT media-supported WITH-VALUE "na-letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA EXPECT media-supported WITH-VALUE "na_letter_8.5x11in" DEFINE-VALUE OPTIONAL_LETTER_MEDIA EXPECT media-supported WITH-VALUE "index-4x6" DEFINE-VALUE OPTIONAL_4X6_MEDIA EXPECT media-supported WITH-VALUE "na_index-4x6_4x6in" DEFINE-VALUE OPTIONAL_4X6_MEDIA EXPECT number-up-supported WITH-VALUE 2 DEFINE-MATCH OPTIONAL_2UP EXPECT print-quality WITH-VALUE 3 DEFINE-MATCH OPTIONAL_DRAFT_QUALITY EXPECT print-quality WITH-VALUE 4 DEFINE-MATCH OPTIONAL_NORMAL_QUALITY EXPECT print-quality WITH-VALUE 5 DEFINE-MATCH OPTIONAL_BEST_QUALITY EXPECT sides-supported WITH-VALUE "two-sided-long-edge" DEFINE-MATCH OPTIONAL_DUPLEX # Printer description attributes EXPECT ?color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?job-impressions-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?job-k-octets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?job-media-sheets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?multiple-operation-time-out OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?printer-driver-installer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 EXPECT ?printer-info OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" EXPECT ?printer-location OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" EXPECT ?printer-make-and-model OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" EXPECT ?printer-message-from-operator OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" EXPECT ?printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" EXPECT ?printer-more-info-manufacturer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" EXPECT ?printer-state-message OF-TYPE text IN-GROUP printer-attributes-tag EXPECT ?reference-uri-schemes-supported OF-TYPE uriScheme IN-GROUP printer-attributes-tag EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_PRINT_URI EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_SEND_URI IF-NOT-DEFINED OPTIONAL_PRINT_URI EXPECT charset-configured OF-TYPE charset IN-GROUP printer-attributes-tag COUNT 1 EXPECT charset-supported OF-TYPE charset IN-GROUP printer-attributes-tag WITH-VALUE utf-8 EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE none EXPECT document-format-default OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag COUNT 1 EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag EXPECT generated-natural-language-supported OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag EXPECT ipp-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE 1.1 EXPECT natural-language-configured OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag COUNT 1 EXPECT pdl-override-supported OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 EXPECT printer-is-accepting-jobs OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 EXPECT printer-name OF-TYPE name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{1,127}$$/" EXPECT printer-state OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 EXPECT printer-state-reasons OF-TYPE keyword IN-GROUP printer-attributes-tag EXPECT printer-up-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-security-supported WITH-ALL-VALUES "$IPP_URI_SCHEME" EXPECT queued-job-count OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 EXPECT uri-authentication-supported OF-TYPE keyword IN-GROUP printer-attributes-tag EXPECT uri-security-supported OF-TYPE keyword IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-authentication-supported } # Test Get-Printer-Attributes operation with requested-attributes # # Required by: RFC 2911 section 3.2.5 { NAME "RFC 2911 section 3.2.5: Get-Printer-Attributes Operation (requested-attributes)" OPERATION Get-Printer-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR mimeMediaType document-format $filetype ATTR keyword requested-attributes printer-uri-supported STATUS successful-ok EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$IPP_URI_SCHEME" EXPECT !printer-name } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (default)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user STATUS successful-ok EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT !job-printer-uri EXPECT !job-more-info EXPECT !job-name EXPECT !job-originating-user-name EXPECT !job-state EXPECT !job-state-reasons EXPECT !job-state-message EXPECT !job-detailed-status-messages EXPECT !number-of-documents EXPECT !output-device-assigned EXPECT !time-at-creation EXPECT !time-at-processing EXPECT !time-at-completed EXPECT !job-printer-up-time EXPECT !date-time-at-creation EXPECT !date-time-at-processing EXPECT !date-time-at-completed EXPECT !number-of-intervening-jobs EXPECT !job-message-from-operator EXPECT !job-k-octets EXPECT !job-impressions EXPECT !job-media-sheets EXPECT !job-k-octets-processed EXPECT !job-impressions-completed EXPECT !job-media-sheets-completed EXPECT !copies EXPECT !finishings EXPECT !job-hold-until EXPECT !job-priority EXPECT !job-sheets EXPECT !media EXPECT !multiple-document-handling EXPECT !number-up EXPECT !orientation-requested EXPECT !pages-ranges EXPECT !print-quality EXPECT !printer-resolution EXPECT !sides } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { SKIP-IF-DEFINED PRINT_JOB_COMPLETED NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (requested-attributes)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR keyword requested-attributes all STATUS successful-ok EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-k-octets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-impressions OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-media-sheets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-k-octets-processed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-media-sheets-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { SKIP-IF-DEFINED PRINT_JOB_COMPLETED NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (my-jobs)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR boolean my-jobs true STATUS successful-ok EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT !job-printer-uri EXPECT !job-more-info EXPECT !job-name EXPECT !job-originating-user-name EXPECT !job-state EXPECT !job-state-reasons EXPECT !job-state-message EXPECT !job-detailed-status-messages EXPECT !number-of-documents EXPECT !output-device-assigned EXPECT !time-at-creation EXPECT !time-at-processing EXPECT !time-at-completed EXPECT !job-printer-up-time EXPECT !date-time-at-creation EXPECT !date-time-at-processing EXPECT !date-time-at-completed EXPECT !number-of-intervening-jobs EXPECT !job-message-from-operator EXPECT !job-k-octets EXPECT !job-impressions EXPECT !job-media-sheets EXPECT !job-k-octets-processed EXPECT !job-impressions-completed EXPECT !job-media-sheets-completed EXPECT !copies EXPECT !finishings EXPECT !job-hold-until EXPECT !job-priority EXPECT !job-sheets EXPECT !media EXPECT !multiple-document-handling EXPECT !number-up EXPECT !orientation-requested EXPECT !pages-ranges EXPECT !print-quality EXPECT !printer-resolution EXPECT !sides } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { SKIP-IF-DEFINED PRINT_JOB_COMPLETED # Skip this test when doing authenticated printing since we'll always # use the authenticated username over the requesting-user-name value. SKIP-IF-DEFINED uriuser NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (my-jobs different user)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name not-$user ATTR boolean my-jobs true STATUS successful-ok EXPECT !job-id EXPECT !job-uri EXPECT !job-printer-uri EXPECT !job-more-info EXPECT !job-name EXPECT !job-originating-user-name EXPECT !job-state EXPECT !job-state-reasons EXPECT !job-state-message EXPECT !job-detailed-status-messages EXPECT !number-of-documents EXPECT !output-device-assigned EXPECT !time-at-creation EXPECT !time-at-processing EXPECT !time-at-completed EXPECT !job-printer-up-time EXPECT !date-time-at-creation EXPECT !date-time-at-processing EXPECT !date-time-at-completed EXPECT !number-of-intervening-jobs EXPECT !job-message-from-operator EXPECT !job-k-octets EXPECT !job-impressions EXPECT !job-media-sheets EXPECT !job-k-octets-processed EXPECT !job-impressions-completed EXPECT !job-media-sheets-completed EXPECT !copies EXPECT !finishings EXPECT !job-hold-until EXPECT !job-priority EXPECT !job-sheets EXPECT !media EXPECT !multiple-document-handling EXPECT !number-up EXPECT !orientation-requested EXPECT !pages-ranges EXPECT !print-quality EXPECT !printer-resolution EXPECT !sides } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { SKIP-IF-DEFINED PRINT_JOB_COMPLETED NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (which-jobs=not-completed)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR keyword which-jobs not-completed STATUS successful-ok EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT !job-printer-uri EXPECT !job-more-info EXPECT !job-name EXPECT !job-originating-user-name EXPECT !job-state EXPECT !job-state-reasons EXPECT !job-state-message EXPECT !job-detailed-status-messages EXPECT !number-of-documents EXPECT !output-device-assigned EXPECT !time-at-creation EXPECT !time-at-processing EXPECT !time-at-completed EXPECT !job-printer-up-time EXPECT !date-time-at-creation EXPECT !date-time-at-processing EXPECT !date-time-at-completed EXPECT !number-of-intervening-jobs EXPECT !job-message-from-operator EXPECT !job-k-octets EXPECT !job-impressions EXPECT !job-media-sheets EXPECT !job-k-octets-processed EXPECT !job-impressions-completed EXPECT !job-media-sheets-completed EXPECT !copies EXPECT !finishings EXPECT !job-hold-until EXPECT !job-priority EXPECT !job-sheets EXPECT !media EXPECT !multiple-document-handling EXPECT !number-up EXPECT !orientation-requested EXPECT !pages-ranges EXPECT !print-quality EXPECT !printer-resolution EXPECT !sides } # Wait for job to complete... { SKIP-IF-NOT-DEFINED job-id NAME "Get-Job-Attributes Until Job Complete" OPERATION Get-Job-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS successful-ok EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6 REPEAT-NO-MATCH REPEAT-LIMIT 30 DISPLAY job-state } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (which-jobs=completed)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR keyword which-jobs completed STATUS successful-ok EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT !job-printer-uri EXPECT !job-more-info EXPECT !job-name EXPECT !job-originating-user-name EXPECT !job-state EXPECT !job-state-reasons EXPECT !job-state-message EXPECT !job-detailed-status-messages EXPECT !number-of-documents EXPECT !output-device-assigned EXPECT !time-at-creation EXPECT !time-at-processing EXPECT !time-at-completed EXPECT !job-printer-up-time EXPECT !date-time-at-creation EXPECT !date-time-at-processing EXPECT !date-time-at-completed EXPECT !number-of-intervening-jobs EXPECT !job-message-from-operator EXPECT !job-k-octets EXPECT !job-impressions EXPECT !job-media-sheets EXPECT !job-k-octets-processed EXPECT !job-impressions-completed EXPECT !job-media-sheets-completed EXPECT !copies EXPECT !finishings EXPECT !job-hold-until EXPECT !job-priority EXPECT !job-sheets EXPECT !media EXPECT !multiple-document-handling EXPECT !number-up EXPECT !orientation-requested EXPECT !pages-ranges EXPECT !print-quality EXPECT !printer-resolution EXPECT !sides } # Test Get-Jobs operation # # Required by: RFC 2911 section 3.2.6 { SKIP-IF-DEFINED PRINT_JOB_COMPLETED NAME "RFC 2911 section 3.2.6: Get-Jobs Operation (which-jobs, requested-attributes)" OPERATION Get-Jobs GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR keyword requested-attributes all ATTR keyword which-jobs completed STATUS successful-ok EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-k-octets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-impressions OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-media-sheets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-k-octets-processed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-media-sheets-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" } # Test Cancel-Job operation # # Required by: RFC 2911 section 3.3.3 { NAME "RFC 2911 section 3.3.3: Cancel-Job Operation (completed job)" OPERATION Cancel-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS client-error-not-possible } # Test Print-Job operation # # Required by: RFC 2911 section 3.2.1 { NAME "RFC 2911 section 3.2.1: Print-Job Operation" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype FILE $filename STATUS successful-ok STATUS client-error-document-format-not-supported STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test Cancel-Job operation # # Required by: RFC 2911 section 3.3.3 { NAME "RFC 2911 section 3.3.3: Cancel-Job Operation (pending/processing job)" OPERATION Cancel-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS successful-ok STATUS client-error-not-possible } # Test Get-Job-Attributes operation # # Required by: RFC 2911 section 3.3.4 { NAME "RFC 2911 section 3.3.4: Get-Job-Attributes Operation" OPERATION Get-Job-Attributes GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS successful-ok EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-k-octets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-impressions OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-media-sheets OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-k-octets-processed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-impressions-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-media-sheets-completed OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" } # Test Print-URI operation # # Defined by: RFC 2911 section 3.2.2 { SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI SKIP-IF-NOT-DEFINED document-uri NAME "RFC 2911 section 3.2.2: Print-URI Operation" OPERATION Print-URI GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false ATTR name document-name $filename ATTR keyword compression none ATTR uri document-uri $document-uri STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test Print-URI operation with bad document-uri # # Defined by: RFC 2911 section 3.2.2 { SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI SKIP-IF-NOT-DEFINED document-uri NAME "Print-URI with bad URI: Print-URI Operation" OPERATION Print-URI GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false ATTR name document-name $filename ATTR keyword compression none ATTR uri document-uri "bogus://bogus" STATUS client-error-uri-scheme-not-supported EXPECT !job-uri EXPECT !job-id EXPECT !job-state EXPECT !job-state-reasons EXPECT !job-state-message } # Test Create-Job and Send-Document operations # # Defined by: RFC 2911 section 3.2.4 and 3.3.1 { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT NAME "RFC 2911 section 3.2.4: Create-Job Operation" OPERATION Create-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false STATUS successful-ok EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT SKIP-PREVIOUS-ERROR yes NAME "RFC 2911 section 3.3.1: Send-Document Operation" OPERATION Send-Document GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user ATTR boolean last-document true ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype FILE $filename STATUS successful-ok STATUS client-error-document-format-not-supported STATUS server-error-job-canceled } # Test Create-Job and Send-Document operations (no last-document) # # Defined by: RFC 2911 section 3.2.4 and 3.3.1 { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT NAME "Send-Document missing last-document: Create-Job Operation" OPERATION Create-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false STATUS successful-ok EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT SKIP-PREVIOUS-ERROR yes NAME "Send-Document missing last-document: Send-Document Operation" OPERATION Send-Document GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype FILE $filename STATUS client-error-bad-request } { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT SKIP-PREVIOUS-ERROR yes NAME "RFC 2911 section 3.3.3: Cancel-Job Operation" OPERATION Cancel-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS successful-ok STATUS server-error-job-canceled } # Test Create-Job and Send-URI operations # # Defined by: RFC 2911 section 3.2.4 and 3.3.2 { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI SKIP-IF-NOT-DEFINED document-uri NAME "RFC 2911 section 3.2.4: Create-Job Operation" OPERATION Create-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false STATUS successful-ok EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI SKIP-IF-NOT-DEFINED document-uri SKIP-PREVIOUS-ERROR yes NAME "RFC 2911 section 3.3.2: Send-URI Operation" OPERATION Send-URI GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user ATTR boolean last-document true ATTR name document-name $filename ATTR keyword compression none ATTR uri document-uri $document-uri STATUS successful-ok STATUS server-error-job-canceled } # Test Create-Job and Send-URI operations (bad URI) # # Defined by: RFC 2911 section 3.2.4 and 3.3.2 { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI NAME "Send-URI with bad URI: Create-Job Operation" OPERATION Create-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false STATUS successful-ok EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI SKIP-IF-NOT-DEFINED document-uri SKIP-PREVIOUS-ERROR yes NAME "Send-URI with bad URI: Send-URI Operation (bad URI)" OPERATION Send-URI GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user ATTR boolean last-document true ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype ATTR uri document-uri "bogus://bogus" STATUS client-error-uri-scheme-not-supported } { SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI SKIP-PREVIOUS-ERROR yes NAME "Send-URI with bad URI: Cancel-Job Operation" OPERATION Cancel-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS successful-ok STATUS server-error-job-canceled } # Test multiple copy output { SKIP-IF-NOT-DEFINED OPTIONAL_COPIES NAME "Print-Job with copies" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name $filename ATTR boolean ipp-attribute-fidelity false ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype GROUP job-attributes-tag ATTR integer copies 2 FILE $filename STATUS successful-ok STATUS client-error-document-format-not-supported STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test PDF output { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA NAME "Print-Job with A4 PDF" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA FILE document-a4.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX NAME "Print-Job with A4 PDF, Duplex" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document, Duplex" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR keyword sides two-sided-long-edge FILE document-a4.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA NAME "Print-Job with US Letter PDF" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA FILE document-letter.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX NAME "Print-Job with US Letter PDF, Duplex" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document, Duplex" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR keyword sides two-sided-long-edge FILE document-letter.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test PostScript output { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA NAME "Print-Job with A4 PostScript" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document, Duplex" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA FILE document-a4.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX NAME "Print-Job with A4 PostScript, Duplex" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR keyword sides two-sided-long-edge FILE document-a4.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA NAME "Print-Job with US Letter PostScript" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document, Duplex" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA FILE document-letter.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX NAME "Print-Job with US Letter PostScript, Duplex" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR keyword sides two-sided-long-edge FILE document-letter.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test JPEG output { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA NAME "Print-Job with Color JPEG on A4" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Color JPEG on A4" ATTR boolean ipp-attribute-fidelity false ATTR name document-name color.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA FILE color.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA NAME "Print-Job with Color JPEG on US Letter" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Color JPEG on US Letter" ATTR boolean ipp-attribute-fidelity false ATTR name document-name color.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA FILE color.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA NAME "Print-Job with Color JPEG on 4x6" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Color JPEG on 4x6" ATTR boolean ipp-attribute-fidelity false ATTR name document-name color.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_4X6_MEDIA FILE color.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA NAME "Print-Job with Grayscale JPEG on A4" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Grayscale JPEG on A4" ATTR boolean ipp-attribute-fidelity false ATTR name document-name gray.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA FILE gray.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA NAME "Print-Job with Grayscale JPEG on US Letter" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Grayscale JPEG on US Letter" ATTR boolean ipp-attribute-fidelity false ATTR name document-name gray.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA FILE gray.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA NAME "Print-Job with Grayscale JPEG on 4x6" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Grayscale JPEG on 4x6" ATTR boolean ipp-attribute-fidelity false ATTR name document-name gray.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_4X6_MEDIA FILE gray.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Print-Job with job-sheets { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET NAME "Print-Job with A4 PDF and Standard Sheet" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document w/Standard Sheet" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR keyword job-sheets standard FILE document-a4.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET NAME "Print-Job with US Letter PDF and Standard Sheet" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document w/Standard Sheet" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR keyword job-sheets standard FILE document-a4.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET NAME "Print-Job with A4 PDF and Standard Sheet" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document w/Standard Sheet" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR keyword job-sheets standard FILE document-a4.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET NAME "Print-Job with US Letter PDF and Standard Sheet" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document w/Standard Sheet" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR keyword job-sheets standard FILE document-a4.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test number-up output { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_2UP NAME "Print-Job with A4 PDF, 2-Up" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document; 2-Up" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR integer number-up 2 FILE document-a4.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_2UP NAME "Print-Job with US Letter PDF, 2-Up" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document; 2-Up" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR integer number-up 2 FILE document-letter.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_2UP NAME "Print-Job with A4 PDF, 2-Up" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document; 2-Up" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR integer number-up 2 FILE document-a4.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_2UP NAME "Print-Job with US Letter PDF, 2-Up" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document; 2-Up" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.ps ATTR keyword compression none ATTR mimeMediaType document-format application/postscript GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR integer number-up 2 FILE document-letter.ps STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test output with print-quality... { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY NAME "Print-Job with JPEG on 4x6, Draft Quality" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "4x6 Color JPEG; Draft Quality" ATTR boolean ipp-attribute-fidelity false ATTR name document-name color.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_4X6_MEDIA ATTR enum print-quality 3 FILE color.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_NORMAL_QUALITY NAME "Print-Job with JPEG on 4x6, Normal Quality" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "4x6 Color JPEG; Normal Quality" ATTR boolean ipp-attribute-fidelity false ATTR name document-name color.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_4X6_MEDIA ATTR enum print-quality 4 FILE color.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_JPEG SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_HIGH_QUALITY NAME "Print-Job with JPEG on 4x6, High Quality" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "4x6 Color JPEG; High Quality" ATTR boolean ipp-attribute-fidelity false ATTR name document-name color.jpg ATTR keyword compression none ATTR mimeMediaType document-format image/jpeg GROUP job-attributes-tag ATTR keyword media $OPTIONAL_4X6_MEDIA ATTR enum print-quality 5 FILE color.jpg STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY NAME "Print-Job with A4 PDF, Draft Quality" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "A4 Test Document; 2-Up" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-a4.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_A4_MEDIA ATTR enum print-quality 3 FILE document-a4.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-DEFINED NOPRINT SKIP-IF-NOT-DEFINED OPTIONAL_PDF SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY NAME "Print-Job with US Letter PDF, Draft Quality" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "US Letter Test Document; 2-Up" ATTR boolean ipp-attribute-fidelity false ATTR name document-name document-letter.pdf ATTR keyword compression none ATTR mimeMediaType document-format application/pdf GROUP job-attributes-tag ATTR keyword media $OPTIONAL_LETTER_MEDIA ATTR enum print-quality 3 FILE document-letter.pdf STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test hold/release in the context of Print-Job w/job-hold-until + Release-Job { SKIP-IF-NOT-DEFINED OPTIONAL_HOLD_JOB NAME "Print-Job with job-hold-until" OPERATION Print-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR name requesting-user-name $user ATTR name job-name "Test Document w/Hold" ATTR name document-name $filename ATTR keyword compression none ATTR mimeMediaType document-format $filetype GROUP job-attributes-tag ATTR keyword job-hold-until indefinite FILE $filename STATUS successful-ok STATUS server-error-job-canceled STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 10 EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag WITH-VALUE >-1 } { SKIP-IF-NOT-DEFINED OPTIONAL_HOLD_JOB NAME "Release-Job" OPERATION Release-Job GROUP operation-attributes-tag ATTR charset attributes-charset utf-8 ATTR naturalLanguage attributes-natural-language en ATTR uri printer-uri $uri ATTR integer job-id $job-id ATTR name requesting-user-name $user STATUS successful-ok STATUS client-error-not-possible } # # End of "$Id$". #