diff --git a/lib/galaxy/tools/parser/interface.py b/lib/galaxy/tools/parser/interface.py
index bc4b7076ccc..969012a8a90 100644
--- a/lib/galaxy/tools/parser/interface.py
+++ b/lib/galaxy/tools/parser/interface.py
@@ -347,10 +347,11 @@ class TestCollectionDef( object ):
class TestCollectionOutputDef( object ):
- # TODO: do not require XML directly here.
def __init__( self, name, attrib, element_tests ):
self.name = name
self.collection_type = attrib.get( "type", None )
+ count = attrib.get("count", None)
+ self.count = int(count) if count is not None else None
self.attrib = attrib
self.element_tests = element_tests
diff --git a/test/functional/test_toolbox.py b/test/functional/test_toolbox.py
index 4c3dca5f688..4b50e2f0300 100644
--- a/test/functional/test_toolbox.py
+++ b/test/functional/test_toolbox.py
@@ -213,6 +213,14 @@ class ToolTestCase( TwillTestCase ):
message = template % (name, expected_collection_type, collection_type)
raise AssertionError(message)
+ expected_element_count = output_collection_def.count
+ if expected_element_count:
+ actual_element_count = len(data_collection[ "elements" ])
+ if expected_element_count != actual_element_count:
+ template = "Expected output collection [%s] to have %s elements, but it had %s."
+ message = template % (name, expected_element_count, actual_element_count)
+ raise AssertionError(message)
+
def verify_elements( element_objects, element_tests ):
for element_identifier, ( element_outfile, element_attrib ) in element_tests.items():
element = get_element( element_objects, element_identifier )
diff --git a/test/functional/tools/collection_creates_list.xml b/test/functional/tools/collection_creates_list.xml
index 044f31519e9..8cb572821c2 100644
--- a/test/functional/tools/collection_creates_list.xml
+++ b/test/functional/tools/collection_creates_list.xml
@@ -22,7 +22,7 @@
-
+