//**************************************************************************
//
//
// National Institute Of Standards and Technology
// DTS Version 1.0
//
// HTMLCollection Interface
//**************************************************************************
function HTMLCollection()
{
var tests = new Array (HTML0001HC(),HTML0002HC(),HTML0003HC(),HTML0004HC(),HTML0005HC(),HTML0006HC(),HTML0007HC(),HTML0008HC(),HTML0009HC(),HTML0010HC(),HTML0011HC(),HTML0012HC());
return tests;
}
//------------------------ test case HTML-0001HC ------------------------
//
// Testing feature - An individual node may be accessed by either ordinal
// index, node's name or id attributes (test invocation
// by ordinal index);
//
// Testing approach - Retrieve the first TABLE element of the testing
// document and create an HTMLCollection by invoking
// its "rows" attribute. The item located at ordinal
// index 0 is further retrieved and its "rowIndex"
// attribute examined.
//
// Semantic Requirements: 1
//
// Last modification date - July 30, 1999
//
// Written by: Carmelo Montanez
//------------------------------------------------------------------------
function HTML0001HC()
{
var computedValue = "";
var expectedValue = 0;
var results = "";
var testNode = "";
var collection = "";
var row = "";
results = new testResults("HTML0001HC");
results.description = "An individual node in the HTMLCollection "+
"accessed via an ordinal index.";
//
// Retrieve targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
//
// and create an HTMLCollection by invoking the "rows" attribute,
// then retrieve the item at index 0.
//
collection = testNode.node.rows;
row = collection(0);
computedValue = row.rowIndex;
//
// Write out results
//
resetHTMLData();
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0001HC -------------------------
//
//-------------------------- test case HTML-0002HC ---------------------------
//
// Testing feature - An individual node may be accessed by either ordinal
// index, node's name or id attributes (test invocation
// by node's name);
//
// Testing approach - Retrieve the first FORM element of the testing
// document and create an HTMLCollection by invoking
// its "element" attribute. The first SELECT element
// is further retrieved by using the element's name
// ("select1").
//
// Semantic Requirements: 1
//
// Last modification date - September 28, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0002HC()
{
var computedValue = "";
var expectedValue = "SELECT";
var results = "";
var testNode = "";
var collection = "";
var row = "";
results = new testResults("HTML0002HC");
results.description = "An individual node in the HTMLCollection "+
"accessed via the node's name.";
//
// Retrieve targeted data.
//
testNode = new HTMLNodeObject(FORM,FIRST);
//
// and create an HTMLCollection by invoking the "elements" attribute,
// then retrieve the item named "select1".
//
collection = testNode.node.elements;
computedValue = collection("select1").nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0002HC -------------------------
//
//-------------------------- test case HTML-0003HC ---------------------------
//
// Testing feature - An individual node may be accessed by either ordinal
// index, node's name or id attributes (test invocation
// by node's "id" attribute);
//
// Testing approach - Retrieve the first FORM element of the testing
// document and create an HTMLCollection by invoking
// its "elements" attribute. The first SELECT element
// retrieved by using its "id" attribute ("selectId").
//
// Semantic Requirements: 1
//
// Last modification date - September 28, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0003HC()
{
var computedValue = "";
var expectedValue = "SELECT";
var results = "";
var testNode = "";
var collection = "";
var row = "";
results = new testResults("HTML0003HC");
results.description = "An individual node in the HTMLCollection "+
"accessed via the nodes \"id\".";
//
// Retrieve targeted data.
//
testNode = new HTMLNodeObject(FORM,FIRST);
//
// and create an HTMLCollection by invoking the "elements" attribute,
// then retrieve the item with id="selectId".
//
collection = testNode.node.elements;
computedValue = collection("selectId").nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0003HC -------------------------
//
//-------------------------- test case HTML-0004HC ---------------------------
//
// Testing feature - HTMLCollections are "live", they are automatically
// updated when the underlying doucument is changed.
//
// Testing approach - Create an HTMLCollection object by invoking the
// "rows" attribute of the first TABLE element and
// examine the length of the object, then add a new
// row to the table and re-examine the length
// of the collection object.
//
// Semantic Requirements: 2
//
// Last modification date - August 2, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0004HC()
{
var computedValue = "";
var expectedValue = "7 8";
var results = "";
var testNode = "";
var collection = "";
var collectionLength = "";
results = new testResults("HTML0004HC");
results.description = "HTMLCollection objects are live,"+
"changes in the underlying document are "+
"automatically reflected.";
//
// Retrieve targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
//
// and access retrieve the number of rows in the table .
//
collection = testNode.node.rows;
collectionLength = collection.length;
computedValue = collectionLength+" ";
//
// Add another row to the table and get the new number of rows.
//
testNode.node.insertRow(4);
collectionLength = collection.length;
computedValue += collectionLength;
//
// Write out results
//
resetHTMLData();
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0004HC -------------------------
//
//-------------------------- test case HTML-0005HC ---------------------------
//
// Testing feature - The "length" attribute specifies the length or
// size of the list.
//
// Testing approach - Create an HTMLCollection object by accessing the
// "rows" attribute of the first TABLE element, then
// invoke the "length" attribute on the resulting
// HTMLCollection object.
//
// Semantic Requirements: 3
//
// Last modification date - August 2, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0005HC()
{
var computedValue = "";
var expectedValue = 7;
var results = "";
var testNode = "";
var collection = "";
var collectionLength = "";
results = new testResults("HTML0005HC");
results.description = "the \"length\" attribute specifies "+
"size of the list";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
collection = testNode.node.rows;
//
// and get its "length" attribute.
//
computedValue = collection.length;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0005HC -------------------------
//
//-------------------------- test case HTML-0006HC ---------------------------
//
// Testing feature - The "item(index)" method retrieves an item specified
// by ordinal index (test for index = 0).
//
// Testing approach - Create an HTMLCollection object by accessing the
// "rows" attribute of the first TABLE element, then
// invoke the "item(index)" on the resulting
// HTMLCollection object with index = 0. The rowIndex
// attribute of the item is then examined.
//
// Semantic Requirements: 4
//
// Last modification date - August 2, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0006HC()
{
var computedValue = "";
var expectedValue = 0;
var results = "";
var testNode = "";
var collection = "";
var firstRow = "";
results = new testResults("HTML0006HC");
results.description = "the \"item(index)\" method retrieves "+
"an item specified by ordinal index "+
"(index = 0)";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
collection = testNode.node.rows;
//
// invoke its "item(index)" method with index = 0.
//
firstRow = collection.item(FIRST);
computedValue = firstRow.rowIndex;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0006HC -------------------------
//
//
//-------------------------- test case HTML-0006HC ---------------------------
//
// Testing feature - The "item(index)" method retrieves an item specified
// by ordinal index (test for index = 6).
//
// Testing approach - Create an HTMLCollection object by accessing the
// "rows" attribute of the first TABLE element, then
// invoke the "item(index)" on the resulting
// HTMLCollection object with index = 6. The rowIndex
// attribute of the item is then examined.
//
// Semantic Requirements: 4
//
// Last modification date - August 2, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0007HC()
{
var computedValue = "";
var expectedValue = 6;
var results = "";
var testNode = "";
var collection = "";
var firstRow = "";
results = new testResults("HTML0007HC");
results.description = "the \"item(index)\" method retrieves "+
"an item specified by ordinal index "+
"(index = 6)";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
collection = testNode.node.rows;
//
// invoke its "item(index)" method with index = 0.
//
firstRow = collection.item(SEVENTH);
computedValue = firstRow.rowIndex;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0007HC -------------------------
//
//-------------------------- test case HTML-0008HC ---------------------------
//
// Testing feature - Nodes in an HTMLCollection object are numbered in tree
// order (depth-first traversal order).
//
// Testing approach - Create an HTMLCollection object by accessing the
// "rows" attribute of the first TABLE element, then
// access its third item by ordinal index. The resulting
// "rowIndex" of the returned row object should be equal
// to 2.
//
// Semantic Requirements: 5
//
// Last modification date - August 2, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0008HC()
{
var computedValue = "";
var expectedValue = 2;
var results = "";
var testNode = "";
var collection = "";
var firstRow = "";
results = new testResults("HTML0008HC");
results.description = "Nodes in an HTMLCollection object "+
"are numbered in tree order (depth-first "+
"traversal order)";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
collection = testNode.node.rows;
//
// invoke its "item(index)" method with index = 0.
//
firstRow = collection.item(THIRD);
computedValue = firstRow.rowIndex;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0008HC -------------------------
//
//-------------------------- test case HTML-0009HC ---------------------------
//
// Testing feature - The "item(index)" method returns null if the index is
// out of range.
//
// Testing approach - Create an HTMLCollection object by accessing the
// "rows" attribute of the first TABLE element, then
// invoke the "item(index)" method with index = 7.
// This index is out of range and therefore the
// method should return a null value.
//
// Semantic Requirements: 6
//
// Last modification date - August 2, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0009HC()
{
var computedValue = "";
var expectedValue = null;
var results = "";
var testNode = "";
var collection = "";
results = new testResults("HTML0009HC");
results.description = "The \"item(index)\" method returns "+
"null if the index is out of range.";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST);
collection = testNode.node.rows;
//
// invoke its "item(index)" method with index = 7.
//
computedValue = collection.item(EIGHT);
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0009HC -------------------------
//
//-------------------------- test case HTML-0010HC ---------------------------
//
// Testing feature - The namedItem(name) method retrieves a node using
// a name. It first searches for a node with a matching
// id attribute.
//
// Testing approach - Create an HTMLCollection object by accessing the
// "elements" attribute of the first FORM element, then
// invoke the "namedItem(name)" method with name =
// "selectId" on the returned object. Since there
// is an element with the attribute set to that value,
// the method should return that node.
//
// Semantic Requirements: 7,8
//
// Last modification date - September 28, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0010HC()
{
var computedValue = "";
var expectedValue = SELECT;
var results = "";
var testNode = "";
var collection = "";
results = new testResults("HTML0010HC");
results.description = "The \"namedItem(name)\" method retrieves "+
"a node by matching an id attribute.";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(FORM,FIRST);
collection = testNode.node.elements;
//
// invoke its namedItem(name) method with name = "selectId".
// Temporarily commented out due to IE5 non support
// computedValue = collection.namedItem("selectId");
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0010HC -------------------------
//
//-------------------------- test case HTML-0011HC ---------------------------
//
// Testing feature - The namedItem(name) method retrieves a node using
// a name. If no node with a matching id attribute is
// found, then the method searches for a node with
// a matching name.
//
// Testing approach - Create an HTMLCollection object by accessing the
// "elements" attribute of the first FORM element, then
// invoke the "namedItem(name)" method with name =
// "select1" on the returned object.
//
// Semantic Requirements: 7, 9
//
// Last modification date - September 28, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0011HC()
{
var computedValue = "";
var expectedValue = SELECT;
var results = "";
var testNode = "";
var collection = "";
results = new testResults("HTML0011HC");
results.description = "The \"namedItem(name)\" method retrieves "+
"a node by matching the name.";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(FORM,FIRST);
collection = testNode.node.elements;
//
// invoke its namedItem(name) method with name = "select1".
// Temporarily commented out due to IE5 non support.
// computedValue = collection.namedItem("select1").nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0011HC -------------------------
//
//-------------------------- test case HTML-0012HC ---------------------------
//
// Testing feature - The namedItem(name) method returns null if no node
// is found with a matching name or id attribute.
//
// Testing approach - Create an HTMLCollection object by accessing the
// "elements" attribute of the first FORM element, then
// invoke the "namedItem(name)" method with name =
// "select4" on the returned object. Since no element
// has the name attribute with that value, the method
// should return null.
//
// Semantic Requirements: 10
//
// Last modification date - September 28, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function HTML0012HC()
{
var computedValue = "";
var expectedValue = null;
var results = "";
var testNode = "";
var collection = "";
results = new testResults("HTML0012HC");
results.description = "The \"namedItem(name)\" method returns "+
"null if no matching id attribute or name "+
"is found.";
//
// Retrieve the targeted data.
//
testNode = new HTMLNodeObject(TABLE,FIRST)
collection = testNode.node.elements;
//
// invoke its namedItem(name) method with name = "select4". Must
// return null.
// Temporarily commented out due to IE5 non support.
//
// computedValue = collection.namedItem("select4");
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case HTML-0012HC -------------------------