blob: 3dbc4d260ed76cdc9092212c837fbaec335588d5 [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package mxml.tags;
import org.junit.Test;
/**
* Feature tests for the MXML {@code <XMLList>} tag.
*
* @author Gordon Smith
*/
public class MXMLXMLListTagTests extends MXMLInstanceTagTestsBase
{
@Test
public void MXMLXMLListTag_empty()
{
String[] declarations = new String[]
{
"<fx:XMLList id='x1'>",
"</fx:XMLList>"
};
String[] asserts = new String[]
{
// An empty tag produces an XMLList with length 0.
"assertEqual('x1 is XMLList', x1 is XMLList, true);",
"assertEqual('x1.length()', x1.length(), 0);",
};
String mxml = getMXML(declarations, asserts);
compileAndRun(mxml);
}
@Test
public void MXMLXMLListTag_oneEmptyTag()
{
String[] declarations = new String[]
{
"<fx:XMLList id='x1' xmlns=''>",
" <aaa/>",
"</fx:XMLList>"
};
String[] asserts = new String[]
{
"assertEqual('x1 is XMLList', x1 is XMLList, true);",
"assertEqual('x1.length()', x1.length(), 1);",
"assertEqual('x1[0].nodeKind()', x1[0].nodeKind(), 'element');",
"assertEqual('x1[0].localName()', x1[0].localName(), 'aaa');",
"assertEqual('x1[0].namespace().uri', x1[0].namespace().uri, '');",
"assertEqual('x1[0].attributes().length()', x1[0].attributes().length(), 0);",
"assertEqual('x1[0].children().length()', x1[0].children().length(), 0);",
};
String mxml = getMXML(declarations, asserts);
compileAndRun(mxml);
}
@Test
public void MXMLXMLListTag_twoEmptyTags()
{
String[] declarations = new String[]
{
"<fx:XMLList id='x1' xmlns=''>",
" <aaa/>",
" <aaa/>",
"</fx:XMLList>"
};
String[] asserts = new String[]
{
"assertEqual('x1 is XMLList', x1 is XMLList, true);",
"assertEqual('x1.length()', x1.length(), 2);",
"assertEqual('x1[0].nodeKind()', x1[0].nodeKind(), 'element');",
"assertEqual('x1[0].localName()', x1[0].localName(), 'aaa');",
"assertEqual('x1[0].namespace().uri', x1[0].namespace().uri, '');",
"assertEqual('x1[0].attribute().length()', x1[0].attributes().length(), 0);",
"assertEqual('x1[0].children().length()', x1[0].children().length(), 0);",
"assertEqual('x1[1].nodeKind()', x1[1].nodeKind(), 'element');",
"assertEqual('x1[1].localName()', x1[1].localName(), 'aaa');",
"assertEqual('x1[1].namespace().uri', x1[1].namespace().uri, '');",
"assertEqual('x1[1].attributes().length', x1[1].attributes().length(), 0);",
"assertEqual('x1[1].children().length()', x1[1].children().length(), 0);",
};
String mxml = getMXML(declarations, asserts);
compileAndRun(mxml);
}
@Test
public void MXMLXMLListTag_oneTagWithAttributes()
{
String[] declarations = new String[]
{
"<fx:XMLList id='x1' xmlns=''>",
" <aaa a='1' b='2'/>",
"</fx:XMLList>"
};
String[] asserts = new String[]
{
"assertEqual('x1 is XMLList', x1 is XMLList, true);",
"assertEqual('x1.length()', x1.length(), 1);",
"assertEqual('x1[0].nodeKind()', x1[0].nodeKind(), 'element');",
"assertEqual('x1[0].localName()', x1[0].localName(), 'aaa');",
"assertEqual('x1[0].namespace().uri', x1[0].namespace().uri, '');",
"assertEqual('x1[0].attributes().length()', x1[0].attributes().length(), 2);",
"assertEqual('x1[0].@a.toString()', x1[0].@a.toString(), '1');",
"assertEqual('x1[0].@b.toString()', x1[0].@b.toString(), '2');",
"assertEqual('x1[0].children().length()', x1[0].children().length(), 0);"
};
String mxml = getMXML(declarations, asserts);
compileAndRun(mxml);
}
@Test
public void MXMLXMLListTag_oneTagWithChildren()
{
String[] declarations = new String[]
{
"<fx:XMLList id='x1' xmlns=''>",
" <aaa>",
" <bbb>xxx</bbb>",
" <bbb>yyy</bbb>",
" </aaa>",
"</fx:XMLList>"
};
String[] asserts = new String[]
{
"assertEqual('x1 is XMLList', x1 is XMLList, true);",
"assertEqual('x1.length()', x1.length(), 1);",
"assertEqual('x1[0].nodeKind()', x1[0].nodeKind(), 'element');",
"assertEqual('x1[0].localName()', x1[0].localName(), 'aaa');",
"assertEqual('x1[0].namespace().uri', x1[0].namespace().uri, '');",
"assertEqual('x1[0].attributes().length()', x1[0].attributes().length(), 0);",
"assertEqual('x1[0].children().length()', x1[0].children().length(), 2);",
"assertEqual('x1[0].bbb[0].toString()', x1[0].bbb[0].toString(), 'xxx');",
"assertEqual('x1[0].bbb[1].toString()', x1[0].bbb[1].toString(), 'yyy');"
};
String mxml = getMXML(declarations, asserts);
compileAndRun(mxml);
}
}