/* MonkeyTalk - a cross-platform functional testing tool Copyright (C) 2012 Gorilla Logic, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.gorillalogic.monkeytalk.ant.tests.integration; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import static org.junit.matchers.JUnitMatchers.containsString; import java.io.IOException; import org.apache.tools.ant.BuildFileTest; import com.gorillalogic.monkeytalk.utils.TestHelper; import com.gorillalogic.monkeytalk.utils.TestHelper.CommandServer; public class RunAntAndroidIT extends BuildFileTest { private static final String HOST = "localhost"; private static final int PORT = 18173; private static final String ADB = "/bin/echo"; private CommandServer server; public RunAntAndroidIT(String s) { super(s); } public void setUp() throws IOException { configureProject("resources/test3/build.xml"); getProject().setProperty("host", HOST); getProject().setProperty("port", Integer.toString(PORT)); getProject().setProperty("adb", ADB); assertThat(getProjectDir().getAbsolutePath(), containsString("/monkeytalk-ant/resources/test3")); server = new TestHelper().new CommandServer(PORT); } public void tearDown() { server.stop(); } /** * run the testSimpleAndroid target in resources/test3/build.xml */ public void testSimpleAndroid() { executeTarget("testSimpleAndroid"); assertThat(getLog(), containsString("server=" + HOST + ":" + PORT)); assertThat(getLog(), containsString("running script simple.mt...")); assertThat(getLog(), containsString("-run: simple.mt")); assertThat(getLog(), containsString("Button SIMPLE Tap")); assertThat(getLog(), containsString("-end: simple.mt")); assertThat(getOutput(), containsString("result: OK")); assertThat(getLog(), containsString("...done")); assertThat(server.getCommands(), notNullValue()); assertThat(server.getCommands().size(), is(1)); assertThat(server.getCommands().get(0).getCommand(), is("Button SIMPLE Tap")); } /** * run the testSimpleAndroidEmulator target in resources/test3/build.xml */ public void testSimpleAndroidEmulator() { executeTarget("testSimpleAndroidEmulator"); assertThat(getLog(), containsString("server=" + HOST + ":" + PORT)); assertThat(getLog(), containsString("running script simple.mt...")); assertThat(getLog(), containsString("-run: simple.mt")); assertThat(getLog(), containsString("Button SIMPLE Tap")); assertThat(getLog(), containsString("-end: simple.mt")); assertThat(getOutput(), containsString("result: OK")); assertThat(getLog(), containsString("...done")); assertThat(server.getCommands(), notNullValue()); assertThat(server.getCommands().size(), is(1)); assertThat(server.getCommands().get(0).getCommand(), is("Button SIMPLE Tap")); } /** * run the testSimpleAndroidSerial target in resources/test3/build.xml */ public void testSimpleAndroidSerial() { executeTarget("testSimpleAndroidSerial"); assertThat(getLog(), containsString("server=" + HOST + ":" + PORT)); assertThat(getLog(), containsString("myserial: -run: simple.mt")); assertThat(getLog(), containsString("myserial: Button SIMPLE Tap")); assertThat(getLog(), containsString("myserial: -end: simple.mt")); assertThat(getOutput(), containsString("result: OK")); assertThat(getLog(), containsString("...done")); assertThat(server.getCommands(), notNullValue()); assertThat(server.getCommands().size(), is(1)); assertThat(server.getCommands().get(0).getCommand(), is("Button SIMPLE Tap")); } /** * run the testSimpleAndroidSerialRemote target in resources/test3/build.xml */ public void testSimpleAndroidSerialRemote() { executeTarget("testSimpleAndroidSerialRemote"); assertThat(getLog(), containsString("server=" + HOST + ":" + PORT)); assertThat(getLog(), containsString("foohost:4321: -run: simple.mt")); assertThat(getLog(), containsString("foohost:4321: Button SIMPLE Tap")); assertThat(getLog(), containsString("foohost:4321: -end: simple.mt")); assertThat(getOutput(), containsString("result: OK")); assertThat(getLog(), containsString("...done")); assertThat(server.getCommands(), notNullValue()); assertThat(server.getCommands().size(), is(1)); assertThat(server.getCommands().get(0).getCommand(), is("Button SIMPLE Tap")); } /** * run the testParallel target in resources/test3/build.xml */ public void testParallel() { executeTarget("testParallel"); assertThat(getLog(), containsString("server=" + HOST + ":" + PORT)); assertThat(getLog(), containsString("running suite mysuite.mts...")); assertThat(getLog(), containsString("myserial1: -start suite (29 tests)")); assertThat(getLog(), containsString("myserial1: 1 : login.mt[usr='Héìíô']")); assertThat(getLog(), containsString("myserial1: 2 : login.mt[usr='Arrow \u21DD\u21DC']")); assertThat(getLog(), containsString("myserial1: 3 : login.mt[usr='Bo Bo']")); assertThat(getLog(), containsString("myserial1: 4 : login.mt[usr='Able']")); assertThat(getLog(), containsString("myserial1: 5 : login.mt[usr='Baker']")); assertThat(getLog(), containsString("myserial1: 6 : login.mt[usr='Charile']")); assertThat(getLog(), containsString("myserial1: 7 : login.mt[usr='Dogg']")); assertThat(getLog(), containsString("myserial1: 8 : login.mt[usr='Edgar']")); assertThat(getLog(), containsString("myserial1: 9 : login.mt[usr='Fred']")); assertThat(getLog(), containsString("myserial1: 10 : login.mt[usr='Gorilla']")); assertThat(getLog(), containsString("myserial1: 11 : login.mt[usr='Hburg']")); assertThat(getLog(), containsString("myserial1: 12 : login.mt[usr='Igor']")); assertThat(getLog(), containsString("myserial1: 13 : login.mt[usr='Joe']")); assertThat(getLog(), containsString("myserial1: 14 : login.mt[usr='Kappa']")); assertThat(getLog(), containsString("myserial1: 15 : login.mt[usr='Lemon']")); assertThat(getLog(), containsString("myserial1: 16 : login.mt[usr='Manny']")); assertThat(getLog(), containsString("myserial1: 17 : login.mt[usr='Number']")); assertThat(getLog(), containsString("myserial1: 18 : login.mt[usr='Octopus']")); assertThat(getLog(), containsString("myserial1: 19 : login.mt[usr='Pop']")); assertThat(getLog(), containsString("myserial1: 20 : login.mt[usr='Quinn']")); assertThat(getLog(), containsString("myserial1: 21 : login.mt[usr='Roger']")); assertThat(getLog(), containsString("myserial1: 22 : login.mt[usr='Sammy']")); assertThat(getLog(), containsString("myserial1: 23 : login.mt[usr='Test']")); assertThat(getLog(), containsString("myserial1: 24 : login.mt[usr='Umbra']")); assertThat(getLog(), containsString("myserial1: 25 : login.mt[usr='Vulture']")); assertThat(getLog(), containsString("myserial1: 26 : login.mt[usr='Water']")); assertThat(getLog(), containsString("myserial1: 27 : login.mt[usr='Xray']")); assertThat(getLog(), containsString("myserial1: 28 : login.mt[usr='Yellow']")); assertThat(getLog(), containsString("myserial1: 29 : login.mt[usr='Zapp']")); assertThat(getLog(), containsString("myserial1: -end suite")); assertThat(getLog(), containsString("myserial2: -start suite (29 tests)")); assertThat(getLog(), containsString("myserial2: 1 : login.mt[usr='Héìíô']")); assertThat(getLog(), containsString("myserial2: 2 : login.mt[usr='Arrow \u21DD\u21DC']")); assertThat(getLog(), containsString("myserial2: 3 : login.mt[usr='Bo Bo']")); assertThat(getLog(), containsString("myserial2: 4 : login.mt[usr='Able']")); assertThat(getLog(), containsString("myserial2: 5 : login.mt[usr='Baker']")); assertThat(getLog(), containsString("myserial2: 6 : login.mt[usr='Charile']")); assertThat(getLog(), containsString("myserial2: 7 : login.mt[usr='Dogg']")); assertThat(getLog(), containsString("myserial2: 8 : login.mt[usr='Edgar']")); assertThat(getLog(), containsString("myserial2: 9 : login.mt[usr='Fred']")); assertThat(getLog(), containsString("myserial2: 10 : login.mt[usr='Gorilla']")); assertThat(getLog(), containsString("myserial2: 11 : login.mt[usr='Hburg']")); assertThat(getLog(), containsString("myserial2: 12 : login.mt[usr='Igor']")); assertThat(getLog(), containsString("myserial2: 13 : login.mt[usr='Joe']")); assertThat(getLog(), containsString("myserial2: 14 : login.mt[usr='Kappa']")); assertThat(getLog(), containsString("myserial2: 15 : login.mt[usr='Lemon']")); assertThat(getLog(), containsString("myserial2: 16 : login.mt[usr='Manny']")); assertThat(getLog(), containsString("myserial2: 17 : login.mt[usr='Number']")); assertThat(getLog(), containsString("myserial2: 18 : login.mt[usr='Octopus']")); assertThat(getLog(), containsString("myserial2: 19 : login.mt[usr='Pop']")); assertThat(getLog(), containsString("myserial2: 20 : login.mt[usr='Quinn']")); assertThat(getLog(), containsString("myserial2: 21 : login.mt[usr='Roger']")); assertThat(getLog(), containsString("myserial2: 22 : login.mt[usr='Sammy']")); assertThat(getLog(), containsString("myserial2: 23 : login.mt[usr='Test']")); assertThat(getLog(), containsString("myserial2: 24 : login.mt[usr='Umbra']")); assertThat(getLog(), containsString("myserial2: 25 : login.mt[usr='Vulture']")); assertThat(getLog(), containsString("myserial2: 26 : login.mt[usr='Water']")); assertThat(getLog(), containsString("myserial2: 27 : login.mt[usr='Xray']")); assertThat(getLog(), containsString("myserial2: 28 : login.mt[usr='Yellow']")); assertThat(getLog(), containsString("myserial2: 29 : login.mt[usr='Zapp']")); assertThat(getLog(), containsString("myserial2: -end suite")); assertThat(getOutput(), containsString("result: OK")); assertThat(getLog(), containsString("...done")); assertThat(server.getCommands(), notNullValue()); assertThat(server.getCommands().get(0).getCommand(), is("Input username EnterText Héìíô")); assertThat(server.getCommands().get(server.getCommands().size() - 1).getCommand(), is("Button LOGOUT Tap %thinktime=1000")); } }