blob: e81e360cbf4820f42476e14882370f88bca9f0fa [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 ASKeywordTests extends ASFeatureTestsBase
{
@Test
public void ASKeyword_SwitchStatement()
{
// 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 var foo:String;",
"public function hasSwitch(switcher:int):Boolean {",
" trace('hey, a method named namespace worked');",
" switch (switcher) {",
" case 1:",
" foo = 'bar';",
" break;",
" default:",
" foo = 'baz';",
" break;",
" }",
" return true;",
"}",
};
String[] testCode = new String[]
{
"hasSwitch(1);",
"assertEqual('switch worked', foo, 'bar');",
"hasSwitch(0);",
"assertEqual('switch worked', foo, 'baz');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_Namespace_as_method_name()
{
// 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 var foo:String;",
"public function namespace(instance:Object):Boolean {",
" trace('hey, a method named namespace worked');",
" foo = 'as';",
" return true;",
"}",
};
String[] testCode = new String[]
{
"namespace(this);",
"assertEqual('method named namespace', foo, 'as');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_Default_as_method_name()
{
// 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 var foo:String;",
"public function default(instance:Object):Boolean {",
" trace('hey, a method named default worked');",
" foo = 'as';",
" return true;",
"}",
};
String[] testCode = new String[]
{
"default(this);",
"assertEqual('method named default', foo, 'as');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_Get_as_method_name()
{
// 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 var foo:String;",
"public function get(instance:Object):Boolean {",
" trace('hey, a method named get worked');",
" foo = 'as';",
" return true;",
"}",
};
String[] testCode = new String[]
{
"get(this);",
"assertEqual('method named get', foo, 'as');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_Get_as_getter_name()
{
// 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 var foo:String;",
"public function get get():Boolean {",
" trace('hey, a getter named get worked');",
" foo = 'as';",
" return true;",
"}",
};
String[] testCode = new String[]
{
"var bar:Boolean = get;",
"assertEqual('getter named get', foo, 'as');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_Get_as_member_expression_name()
{
// 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 var foo:String;",
"public function get get():Boolean {",
" trace('hey, a getter named get worked');",
" foo = 'as';",
" return true;",
"}",
};
String[] testCode = new String[]
{
"var bar:Boolean = this.get;",
"assertEqual('getter named get', foo, 'as');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_as_method_name()
{
// 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 var foo:String;",
"public function as(instance:Object):Boolean {",
" trace('hey, a method named as worked');",
" foo = 'as';",
" return true;",
"}",
};
String[] testCode = new String[]
{
"as(this);",
"assertEqual('method named as', foo, 'as');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_as_property_name()
{
// 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 var foo:String;",
"public function get as():String {",
" return foo;",
"}",
"public function set as(value:String):void {",
" foo = value;",
"}",
};
String[] testCode = new String[]
{
"as = 'bar';",
"assertEqual('property named as', as, 'bar');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_as_variable_name()
{
// 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 var as:String;",
};
String[] testCode = new String[]
{
"as = 'bar';",
"assertEqual('variable named as', as, 'bar');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
@Test
public void ASKeyword_as_member_expression()
{
// 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 var as:String;",
};
String[] testCode = new String[]
{
"this.as = 'bar';",
"assertEqual('variable named as', this.as, 'bar');",
};
String source = getAS(imports, declarations, testCode, new String[0]);
compileAndRun(source);
}
}