1010#
1111# Usage:
1212#
13- # ./ipptool -V 2.1 -f filename -t printer-uri ipp-2.1.test
13+ # ./ipptool [OPTIONS] -V 2.1 -f filename -t printer-uri ipp-2.1.test
1414#
1515# Options:
1616#
@@ -69,31 +69,34 @@ INCLUDE "rfc3998.test"
6969
7070# PWG 5100.12-2024: IPP/2.x Fourth Edition (for IPP/2.1)
7171{
72- NAME "PWG 5100.12-2024: Required Operations, Attributes, and Values"
72+ NAME "PWG 5100.12-2024: Required IPP/2.1 Operations, Attributes, and Values"
7373 OPERATION Get-Printer-Attributes
7474 GROUP operation-attributes-tag
7575 ATTR charset attributes-charset utf-8
7676 ATTR naturalLanguage attributes-natural-language en
7777 ATTR uri printer-uri $uri
7878 ATTR name requesting-user-name $user
7979 ATTR mimeMediaType document-format application/octet-stream
80+ ATTR keyword requested-attributes all,media-col-database
8081
8182 STATUS successful-ok
8283
8384 # Baseline requirement/value
84- EXPECT ipp-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "2.0"
85+ EXPECT ipp-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "2.1"
86+
8587
8688 # Figure out capabilities
8789 EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true DEFINE-MATCH PRINTER_IS_COLOR
8890 EXPECT job-hold-until-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_JOB_HOLD_UNTIL
8991 EXPECT job-priority-supported OF-TYPE integer IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_JOB_PRIORITY
9092 EXPECT job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_JOB_SHEETS
91- EXPECT media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_MEDIA_COL
93+ EXPECT media-ready IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_MEDIA_READY
9294 EXPECT output-bin-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_OUTPUT_BIN
9395 EXPECT print-content-optimize-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_PRINT_CONTENT_OPTIMIZE
9496 EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag DEFINE-MATCH PRINTER_HAS_SIDES
9597
96- # Table 2 - IPP Operations (IPP/2.0)
98+
99+ # Table 2 - IPP Operations (IPP/2.1)
97100 EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag
98101 EXPECT operations-supported WITH-VALUE 0x002D # Cancel-Current-Job
99102 EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job
@@ -124,7 +127,8 @@ INCLUDE "rfc3998.test"
124127 EXPECT operations-supported WITH-VALUE 0x0013 # Set-Printer-Attributes
125128 EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job
126129
127- # Table 5 - Updated IPP Printer Description Attributes (IPP/2.0)
130+
131+ # Table 5 - Updated IPP Printer Description Attributes (IPP/2.1)
128132 EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1
129133
130134 EXPECT copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0
@@ -142,8 +146,24 @@ INCLUDE "rfc3998.test"
142146 EXPECT job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED PRINTER_HAS_JOB_SHEETS
143147 EXPECT job-sheets-supported WITH-VALUE none IF-DEFINED PRINTER_HAS_JOB_SHEETS
144148
149+ EXPECT media-col-database OF-TYPE collection IN-GROUP printer-attributes-tag
150+ EXPECT media-col-database/media-size OF-TYPE collection
151+ EXPECT media-col-database/media-size-supported/x-dimension OF-TYPE integer(1:MAX)|rangeOfInteger(1:MAX)
152+ EXPECT media-col-database/media-size-supported/y-dimension OF-TYPE integer(0:MAX)|rangeOfInteger(0:MAX)
153+ EXPECT media-col-default OF-TYPE no-value|collection IN-GROUP printer-attributes-tag COUNT 1
154+ EXPECT media-col-default/media-size OF-TYPE collection
155+ EXPECT media-col-default/media-size-supported/x-dimension OF-TYPE integer(1:MAX)
156+ EXPECT media-col-default/media-size-supported/y-dimension OF-TYPE integer(1:MAX)
157+ EXPECT media-col-ready OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED PRINTER_HAS_MEDIA_READY
158+ EXPECT media-col-ready/media-size OF-TYPE collection IF-DEFINED PRINTER_HAS_MEDIA_READY
159+ EXPECT media-col-ready/media-size-supported/x-dimension OF-TYPE integer(1:MAX) IF-DEFINED PRINTER_HAS_MEDIA_READY
160+ EXPECT media-col-ready/media-size-supported/y-dimension OF-TYPE integer(1:MAX) IF-DEFINED PRINTER_HAS_MEDIA_READY
161+ EXPECT media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE media-size
145162 EXPECT media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$MEDIA_REGEX"
146163 EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX"
164+ EXPECT media-size-supported OF-TYPE collection IN-GROUP printer-attributes-tag
165+ EXPECT media-size-supported/x-dimension OF-TYPE integer(1:MAX)|rangeOfInteger(1:MAX)
166+ EXPECT media-size-supported/y-dimension OF-TYPE integer(0:MAX)|rangeOfInteger(0:MAX)
147167 EXPECT media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX"
148168
149169 EXPECT orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6,7
@@ -152,10 +172,6 @@ INCLUDE "rfc3998.test"
152172 EXPECT output-bin-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM output-bin-supported
153173 EXPECT output-bin-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag
154174
155- EXPECT pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >-1
156- EXPECT pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >-1 IF-DEFINED PRINTER_IS_COLOR
157- EXPECT !pages-per-minute-color IF-NOT-DEFINED PRINTER_IS_COLOR
158-
159175 EXPECT print-content-optimize-default OF-TYPE keyword COUNT 1 IN-GROUP printer-attributes-tag IF-DEFINED PRINTER_HAS_PRINT_CONTENT_OPTIMIZE WITH-VALUE-FROM print-content-optimize-supported
160176 EXPECT print-content-optimize-supported OF-TYPE keyword IN-GROUP printer-attributes-tag IF-DEFINED PRINTER_HAS_PRINT_CONTENT_OPTIMIZE WITH-ALL-VALUES "/^(auto|graphic|photo|text|text-and-graphic)$$/"
161177
@@ -175,4 +191,13 @@ INCLUDE "rfc3998.test"
175191
176192 EXPECT sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE-FROM sides-supported IF-DEFINED PRINTER_HAS_SIDES
177193 EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" IF-DEFINED PRINTER_HAS_SIDES
194+
195+
196+ # Table 6 - Updated IPP Printer Status Attributes (IPP/2.1)
197+ EXPECT pages-per-minute OF-TYPE integer(0:MAX) IN-GROUP printer-attributes-tag COUNT 1
198+ EXPECT pages-per-minute-color OF-TYPE integer(0:MAX) IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED PRINTER_IS_COLOR
199+ EXPECT !pages-per-minute-color IF-NOT-DEFINED PRINTER_IS_COLOR
200+
201+ EXPECT printer-alert OF-TYPE octetString IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert-description
202+ EXPECT printer-alert-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert
178203}
0 commit comments