//**************************************************************************
//
//
// National Institute Of Standards and Technology
// DTS Version 1.0
//
// NodeList Interface
//**************************************************************************
function NodeList()
{
var tests = new Array (core0001N(), core0002N(), core0003N(),core0004N(),
core0005N(), core0006N(), core0007N(), core0008N(),
core0009N());
return tests;
}
//------------------------ test case core-0001N ------------------------
//
// Testing feature - The items in the list are accessible via an integral
// index starting from zero. (index equal 0)
//
// Testing approach - Create a list of all the children elements of the
// third employee and access its first child by using
// an index of 0. This should result in "employeeId"
// being selected. Further we evaluate its content
// (by examining its "nodeName" attribute) to ensure
// the proper element was accessed.
//
// Semantic Requirements: 1
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0001N()
{
var computedValue = "";
var expectedValue = "employeeId";
var employeeId = "";
var testNode = "";
results = new testResults("Core0001N");
results.description = "The elements in the list are accessible via an "+
"integral index starting from 0 (this test checks "+
"for index equal to 0).";
//
// Retrieve targeted data.
//
testNode = new nodeObject(THIRD);
employeeId = testNode.subNodes(FIRST);
computedValue = employeeId.nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0001N --------------------------
//
//--------------------------- test case core-0002N ---------------------------
//
// Testing feature - The items in the list are accessible via an integral
// index starting from zero. (index not equal 0)
//
// Testing approach - Create a list of all the children elements of the
// third employee and access its fourth child by
// using an index of 3. This should result in "salary"
// being selected. Further we evaluate its "nodeName"
// attribute to ensure the proper element was accessed.
//
// Semantic Requirements: 1
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0002N()
{
var computedValue = "";
var expectedValue = "salary";
var salary = "";
var testNode = "";
results = new testResults("Core0002N");
results.description = "The elements in the list are accessible via an "+
"integral index starting from 0 (this test checks "+
"for index not equal 0).";
//
// Retrieve targeted data.
//
testNode = new nodeObject(THIRD);
salary = testNode.subNodes(FOURTH);
computedValue = salary.nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0002N --------------------------
//
//--------------------------- test case core-0003N ---------------------------
//
// Testing feature - The "item(index)" method returns the indexth item
// in the collection.
//
// Testing approach - Create a list of all the Element children of the
// third employee and access its first child by invoking
// the "item(index)" method with index = 0. This should
// cause the method to return the "employeeId" child.
// Further we evaluate the returned item's "nodeName"
// attribute to ensure the correct item was returned.
//
// Semantic Requirements: 2
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0003N()
{
var computedValue = "";
var expectedValue = "employeeId";
var employeeId = "";
var testNode = "";
results = new testResults("Core0003N");
results.description = "The \"item(index)\" method returns the indexth "+
"item in the collection (return first item).";
//
// Retrieve targeted data.
//
testNode = new nodeObject(THIRD)
employeeId = testNode.subNodes.item(FIRST);
computedValue = employeeId.nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0003N --------------------------
//
//--------------------------- test case core-0004N ---------------------------
//
// Testing feature - The "item(index)" method returns the indexth item
// in the collection.
//
// Testing approach - Create a list of all the Element children of the
// third employee and access its first child by invoking
// the "item(index)" method with index equals to the last
// item in the list. This should cause the method to
// return the "address" child. Further we evaluate the
// returned item's "nodeName" attribute to ensure the
// correct item was returned.
//
// Semantic Requirements: 2
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0004N()
{
var computedValue = "";
var expectedValue = "address";
var address = "";
var testNode = "";
results = new testResults("Core0004N");
results.description = "The \"item(index)\" method returns the indxth "+
"item in the collection (return last item).";
//
// Retrieve targeted data.
//
testNode = new nodeObject(THIRD);
address = testNode.subNodes.item(SIXTH);
computedValue = address.nodeName;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0004N --------------------------
//
//--------------------------- test case core-0005N ---------------------------
//
// Testing feature - If the index is greater than or equal to number of
// nodes, the "item(index)" method returns null.
//
// Testing approach - Create a list of all the Element children of the third
// employee and then invoke its "item(index)" method with
// index equal to 6 (the number of nodes in the list). This
// should cause the method to return null.
//
// Semantic Requirements: 3
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0005N()
{
var computedValue = "";
var expectedValue = null;
var testNode = "";
results = new testResults("Core0005N");
results.description = "The \"item(index)\" method returns null if the "+
"index is greater than or equal to the number of "+
"nodes (index = number of nodes).";
//
// invoke the "item(index)" method with index equal to the number of nodes
// in the list (6, count starts at zero). It should return null.
//
testNode = new nodeObject(THIRD);
computedValue = testNode.subNodes.item(SEVENTH);
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0005N --------------------------
//
//--------------------------- test case core-0006N ---------------------------
//
// Testing feature - If the index is greater than or equal to number of
// nodes, the "item(index)" method returns null.
//
// Testing approach - Create a list of all the Element children of the third
// employee and then invoke the "item(index)" with index
// equal to 7 (index is greater than number of nodes).
// This should cause the method to return null.
//
// Semantic Requirements: 3
//
// Last modification date - March 3, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0006N()
{
var computedValue = "";
var expectedValue = null;
var testNode = "";
results = new testResults("Core0006N");
results.description = "The \"item(index)\" method returns null if the "+
"index is greater than or equal to the number of "+
"nodes (index > number of nodes).";
//
// Retrieve targeted data. All counts start from zero
//
testNode = new nodeObject(THIRD);
computedValue = testNode.subNodes.item(EIGHT);
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0006N --------------------------
//
//--------------------------- test case core-0007N ---------------------------
//
// Testing feature - The "length" attribute contains the number of items in
// the list.
//
// Testing approach - Create a list of all the Element children of the third
// employee and then access the "length" attribute.
// It should contain the value 6.
//
// Semantic Requirements: 4
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0007N()
{
var computedValue = "";
var expectedValue = 6;
var thirdEmployeeList = "";
results = new testResults("Core0007N");
results.description = "The \"length\" attribute contains the number of "+
"nodes in the list (non empty list).";
//
// retrieve the targeted data and access the "length" attribute.
//
testNode = new nodeObject(THIRD);
computedValue = testNode.subNodes.length;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0007N --------------------------
//
//--------------------------- test case core-0008N ---------------------------
//
// Testing feature - The "length" attribute contains the number of items in
// the list (test for empty list).
//
// Testing approach - Create a list of all the children of the Text node
// inside the first child o the third employee and
// then access its "length" attribute. It should
// contain the value 0.
//
// Semantic Requirements: 4
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0008N()
{
var computedValue = "";
var expectedValue = 0;
var testNode = "";
var textNode = "";
results = new testResults("Core0008N");
results.description = "The \"length\" attribute contains the number of "+
"nodes in the list (test for empty list).";
//
// Access the targeted data and examine the "length" attribute of an
// empty list.
//
testNode = new nodeObject(THIRD,FIRST);
textNode = testNode.node.firstChild;
computedValue = textNode.childNodes.length;
//
// Write out results
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0008N --------------------------
//
//--------------------------- test case core-0009 ---------------------------
//
// Testing feature - The range of valid child nodes indices is 0 to length - 1.
//
// Testing approach - Create a list of all the Element children of the
// third employee and traverse the list from index
// 0 to index length - 1.
//
// Semantic Requirements: 5
//
// Last modification date - March 30, 1999
//
// Written by: Carmelo Montanez
//----------------------------------------------------------------------------
function core0009N()
{
var computedValue = "";
var expectedValue = "employeeId name position salary gender address ";
var lastIndex = 0;
var listLength = 0;
var testNode = "";
results = new testResults("Core0009N");
results.description = "The range of valid child nodes indices is 0 to "+
"length - 1.";
//
// Retrieve the targeted data and determine the length of the list.
//
testNode = new nodeObject(THIRD);
listLength = testNode.subNodes.length;
lastIndex = listLength - 1;
//
// Traverse the list from 0 to length - 1. All indices should be valid.
//
for (var index = 0; index <= lastIndex; index++)
computedValue += testNode.subNodes(index).nodeName+" ";
//
// Write out results.
//
results.expected = expectedValue;
results.actual = computedValue;
return results;
}
//------------------------ End test case core-0009N --------------------------