This test checks whether attribute names with uppercase work properly in HTML documents.

Add an attribute:

    setAttribute(attr_name)

The following should be non-empty, true, or non-null.

    getAttribute(attr_name) = attr_value
    hasAttribute(attr_name) = true
    getAttributeNode(attr_name) = [object Attr]
    attributes.getNamedItem(attr_name) = [object Attr]

    getAttributeNS(attr_name) = attr_value
    hasAttributeNS(attr_name) = true
    getAttributeNodeNS(attr_name) = [object Attr]
    attributes.getNamedItemNS(attr_name) = [object Attr]

    getAttribute(ATTR_NAME) = attr_value
    hasAttribute(ATTR_NAME) = true
    getAttributeNode(ATTR_NAME) = [object Attr]
    attributes.getNamedItem(ATTR_NAME) = [object Attr]

The following should be empty, false, or null.

    getAttributeNS(ATTR_NAME) = 
    hasAttributeNS(ATTR_NAME) = false
    getAttributeNodeNS(ATTR_NAME) = null
    attributes.getNamedItemNS(ATTR_NAME) = null

The following should successfully remove the attribute.

    setAttribute(attr_name); removeAttribute(attr_name)
        hasAttribute(attr_name) = false
    setAttribute(attr_name); removeAttributeNS(attr_name)
        hasAttribute(attr_name) = false
    setAttribute(attr_name); attributes.removeNamedItem(attr_name)
        hasAttribute(attr_name) = false
    setAttribute(attr_name); attributes.removeNamedItemNS(null, attr_name)
        hasAttribute(attr_name) = false

    setAttribute(attr_name); removeAttribute(ATTR_NAME)
        hasAttribute(attr_name) = false
    setAttribute(attr_name); attributes.removeNamedItem(ATTR_NAME)
        hasAttribute(attr_name) = false

The following should fail to remove the attribute.

    setAttribute(attr_name); removeAttributeNS(ATTR_NAME)
        hasAttribute(attr_name) = true

The following should fail to remove the attribute with an exception.

    attributes.removeNamedItemNS(ATTR_NAME) raised an exception as expected
        hasAttribute(attr_name) = true

The following should set a lowercase attribute, so the result should be true.

    setAttributeNS(attr_name)
        hasAttribute(attr_name) = true

The following should set an uppercase attribute, so the result should be false.

    setAttributeNS(ATTR_NAME)
        hasAttribute(attr_name) = false

