blob: 5ada5a90c4b9743c7ce5abceff0dbcee7b88a849 [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 as;
import org.junit.Test;
/**
* Feature tests for AS Namespaces.
*/
public class ASExpressionTests extends ASFeatureTestsBase
{
@Test
public void ASExpressionTests_simpleTernary()
{
// all tests can assume that flash.display.Sprite
// flash.system.System and flash.events.Event have been imported
String[] imports = new String[]
{
};
String[] declarations = new String[]
{
"public static const bool1:Boolean = false",
"public static const foo:String = bool1 ? 'foo' : ''",
};
String[] testCode = new String[]
{
"assertEqual('empty string', foo, '');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASExpressionTests_nestedTernary()
{
// all tests can assume that flash.display.Sprite
// flash.system.System and flash.events.Event have been imported
String[] imports = new String[]
{
};
String[] declarations = new String[]
{
"public static const bool1:Boolean = false",
"public static const bool2:Boolean = true",
"public static const foo:String = (bool1 ? bool2 : !bool2) ? 'foo' : ''",
};
String[] testCode = new String[]
{
"assertEqual('empty string', foo, '');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASExpressionTests_returnNestedTernary()
{
// all tests can assume that flash.display.Sprite
// flash.system.System and flash.events.Event have been imported
String[] imports = new String[]
{
};
String[] declarations = new String[]
{
"public static function returner():Number {",
" var bool1:Boolean = false",
" var now:Date = new Date()",
" if (now.getFullYear() < 2016)",
" bool1 = true",
" var bool2:Boolean = true",
" var now2:Date = new Date()",
" if (now2.getFullYear() < 2016)",
" bool2 = false",
" return (bool1 ? !bool2 : bool2) ? 1 : 0",
"}",
"public static var foo:Number = returner()",
};
String[] testCode = new String[]
{
"assertEqual('static number', foo, 1);",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
}