rt/vm/src/test/java/org/apidesign/vm4brwsr/ImplementExternalInterfaceTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 28 May 2014 13:38:29 +0200
branchclosure
changeset 1610 a6f807104d8e
parent 1587 rt/vm/src/test/java/org/apidesign/vm4brwsr/ResourcesWithExtensionsTest.java@bf08bd96d408
child 1611 d0df418a5993
permissions -rw-r--r--
Make sure Object is always available in each VM and each extension.
     1 /**
     2  * Back 2 Browser Bytecode Translator
     3  * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 2 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. Look for COPYING file in the top folder.
    16  * If not, see http://opensource.org/licenses/GPL-2.0.
    17  */
    18 package org.apidesign.vm4brwsr;
    19 
    20 import javax.script.ScriptEngine;
    21 import org.testng.annotations.AfterClass;
    22 import org.testng.annotations.BeforeClass;
    23 import org.testng.annotations.Test;
    24 
    25 /** Tests whether private impl can implement public interface method
    26  * from another extension.
    27  *
    28  * @author Jaroslav Tulach <jtulach@netbeans.org>
    29  */
    30 public class ImplementExternalInterfaceTest {
    31     @Test public void checkHello() throws Exception {
    32         String exp = "Hello!";
    33         
    34         code.assertExec("Can extension implement class from another extension",
    35             ImplementFactory.class, "hello__Ljava_lang_String_2", 
    36             exp
    37         );
    38     }
    39 
    40     private static TestVM code;
    41     
    42     @BeforeClass 
    43     public static void compileTheCode() throws Exception {
    44         StringBuilder sb = new StringBuilder();
    45         ScriptEngine[] eng = { null };
    46         code = TestVM.compileClassAsExtension(sb, eng, 
    47             "org/apidesign/vm4brwsr/ImplementInterface", null, null
    48         );
    49         code = TestVM.compileClassesAsExtension(sb, eng, null, null,
    50             "org/apidesign/vm4brwsr/ImplementFactory", 
    51             "org/apidesign/vm4brwsr/ImplementFactory$Impl"
    52         );
    53     }
    54     @AfterClass
    55     public static void releaseTheCode() {
    56         code = null;
    57     }
    58 }