/* * Software Name : ATK * * Copyright (C) 2007 - 2012 France Télécom * * Licensed 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. * * ------------------------------------------------------------------ * File Name : DefaultPhone.java * * Created : 28/01/2008 * Author(s) : France Telecom */ package com.orange.atk.phone; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Random; import javax.swing.event.EventListenerList; import org.apache.log4j.Logger; import com.orange.atk.interpreter.config.ConfigFile; import com.orange.atk.manageListener.IMeasureListener; import com.orange.atk.manageListener.IPhoneKeyListener; import com.orange.atk.results.logger.log.ResultLogger; import com.orange.atk.util.Position; /** * This class simulates a phone, only for debug purpose. */ public class DefaultPhone implements PhoneInterface { Random rand = new Random(); protected int cnxStatus = PhoneInterface.CNX_STATUS_DISCONNECTED; protected boolean isFailed = false; protected boolean isStarted = false; protected boolean isScriptRecording = false; private final static EventListenerList listeners = new EventListenerList(); public DefaultPhone() { } public String getName() { // TODO Auto-generated method stub return null; } public String getUID() { return ""; } public DefaultPhone(ConfigFile configFile) { } public void beep() { Logger.getLogger(this.getClass()).debug("Beep generated !!!"); } public long getResource(String ResourceName) throws PhoneException { return 0; } public HashMap<String, Long> getResources(List<String> sampledKeys) throws PhoneException { HashMap<String, Long> h = new HashMap<String, Long>(); for (Iterator<String> iterator = sampledKeys.iterator(); iterator.hasNext();) { String resource = iterator.next(); h.put(resource, getResource(resource)); } return h; } public void fillStorage(long freeSpace) { Logger.getLogger(this.getClass()).debug(freeSpace + "o will be available now"); } public void freeStorage() throws PhoneException { // TODO Auto-generated method stub } public String getCurrentMidlet() { // for preventing WaitWindow to loop if (rand.nextBoolean()) { return "NotDesktopExplorerWindow"; } else { return "DesktopExplorerWindow"; } } public void setPowerMonitor(boolean ispm) { } public long getStorageUsed() { return rand.nextInt(); } public long getStorageUsed(String process) { return 0; } public void keyDown(String key) { Logger.getLogger(this.getClass()).debug("KeyDown : " + key); } public void keyPress(String key, int keyPressTime, int delay) { Logger.getLogger(this.getClass()).debug("KeyPress : " + key); } public void keyPress_AT(String key) throws PhoneException { Logger.getLogger(this.getClass()).debug("KeyPress : " + key); } public void keyUp(String key) { Logger.getLogger(this.getClass()).debug("KeyUp : " + key); } public void killMidlet(String process) { Logger.getLogger(this.getClass()).debug("Kill Window " + process); } public void registry(String base, String value, String string) { Logger.getLogger(this.getClass()).debug( "Registry [" + base + "," + value + "," + string + "]"); } public void reset() { Logger.getLogger(this.getClass()).debug("Reset the phone"); } public void runMidlet(String file) { Logger.getLogger(this.getClass()).debug("Running " + file); } public BufferedImage screenShot() { Logger.getLogger(this.getClass()).debug("Take screenshot"); return null; } public void useCpu(int percentUse) { Logger.getLogger(this.getClass()).debug("Use CPU"); } public void waitWindow(String process, int timeout) { Logger.getLogger(this.getClass()).debug( "Wait for window " + process + " during " + timeout + " s."); } public void setOrientation(int direction) { Logger.getLogger(this.getClass()).debug("Change orientation to " + direction); } public String getLastError() { return "No error"; } public void startTestingMode() throws PhoneException { return; } public void setSleepMode(boolean issleep) { } public boolean startRandomTest(String HopperTest, String outputDir, ResultLogger mainLogger, Map<String, String> randomTestParam) { return true; } public boolean isMidletRunning(String MidletName) { return true; } public String getkeysAssociations(int key) { String cmd = ""; return cmd; } public void stopTestingMode() { // Nothing to do } public void stopTestingMode(String directory) { // Nothing to do } public PhoneInterface getInstance(Object... params) { return new DefaultPhone(); } public void setFlightMode(boolean on) { if (on) Logger.getLogger(this.getClass()).debug("Set flight mode ON"); else Logger.getLogger(this.getClass()).debug("Set flight mode OFF"); } /** * Send SMS * * @param PhoneNumber * destination Phone Number * @return Msg SMS Msg * @throws PhoneException */ public void sendSMS(String PhoneNumber, String Msg) throws PhoneException { Logger.getLogger(this.getClass()).debug("Send Msg"); } public void disableUSBcharge() { Logger.getLogger(this.getClass()).debug("Diseable Battery charge"); } public void sendEmail(String Subject, String Msg, String EmailDest, String NameDest, String NameSrc, String EmailSrc) { Logger.getLogger(this.getClass()).debug("Send fake mail Default Phone"); } public void setPower(float power) { } public void fireStdOutput(String stdoutput) { for (IMeasureListener listener : getPerfListeners()) { listener.StdOutputChangee(stdoutput); } } public void fireFloatValue(float newMemValue, String key) { for (IMeasureListener listener : getPerfListeners()) { listener.FloatValueChangee(newMemValue, key); } } public void fireLongValue(long newMemValue, String key) { for (IMeasureListener listener : getPerfListeners()) { listener.LongValueChangee(newMemValue, key); } } public void addPerfListener(IMeasureListener listener) { listeners.add(IMeasureListener.class, listener); } public void removePerfListener(IMeasureListener listener) { listeners.remove(IMeasureListener.class, listener); } public IMeasureListener[] getPerfListeners() { return listeners.getListeners(IMeasureListener.class); } public void setvariable(String testFile, String outputDir) { // TODO Auto-generated method stub } public int getresult() { // TODO Auto-generated method stub return 0; } public String getphoneStatusMsg() { // TODO Auto-generated method stub return null; } public String[] getRandomTestList() { // TODO Auto-generated method stub return null; } public String[] getMonitorList() { // TODO Auto-generated method stub return null; } public void stopRecordingMode() { // TODO Auto-generated method stub } public void phoneKeyPressed(String key) { for (IPhoneKeyListener listener : getKeyListeners()) { listener.phoneKeyPressed(key); } } public void phoneKeyReleased(String key) { for (IPhoneKeyListener listener : getKeyListeners()) { listener.phoneKeyReleased(key); } } public void addPhoneKeyListener(IPhoneKeyListener listener) { listeners.add(IPhoneKeyListener.class, listener); } public void removePhoneKeyListener(IPhoneKeyListener listener) { listeners.remove(IPhoneKeyListener.class, listener); } public IPhoneKeyListener[] getKeyListeners() { return listeners.getListeners(IPhoneKeyListener.class); } public String[] getScriptAssociations(String key) { // TODO Auto-generated method stub return null; } public HashMap<String, String> getKeys() { // TODO Auto-generated method stub return null; } public String[] getRecordPhoneMode() { // TODO Auto-generated method stub return null; } public String[] getKeyLayouts() { // TODO Auto-generated method stub return null; } public void touchScreenDragnDrop(List<Position> path) throws PhoneException { // TODO Auto-generated method stub } public void touchScreenLongPress(Position click) throws PhoneException { // TODO Auto-generated method stub } public void touchScreenPress(Position click) throws PhoneException { // TODO Auto-generated method stub } public void touchScreenSlide(List<Position> path) throws PhoneException { // TODO Auto-generated method stub } public void mouseDown(int x, int y) throws PhoneException { // TODO Auto-generated method stub } public void mouseUp(int x, int y) throws PhoneException { // TODO Auto-generated method stub } public boolean isFailed() { return isFailed; } public void setFailed(boolean failed) { isFailed = failed; } public int getCnxStatus() { return cnxStatus; } public void setCnxStatus(int status) { cnxStatus = status; } public void startRecordingMode() throws PhoneException { // TODO Auto-generated method stub } public boolean isInRecordingMode() { return isScriptRecording; } public boolean isInTestingMode() { return isStarted; } public boolean isDeviceRooted() { // TODO Auto-generated method stub return false; } public void addTcpdumpLineListener(TcpdumpLineListener listener) { // TODO Auto-generated method stub } public int getType() { return PhoneInterface.TYPE_DEFAULT; } public String getIncludeDir() { return null; } public String getConfigFile() { return null; } public String getPhoneConfigFile() { return null; } @Override public boolean isDisabledPhone() { return false; } @Override public void sendCommandToExecuteToSolo(Object[] commands) throws PhoneException { // TODO Auto-generated method stub } @Override public void setApkToTestWithRobotiumParam(String packName, String activityName, String packsourceDir, int versionCode) throws PhoneException { // TODO Auto-generated method stub } @Override public ArrayList<String> getAllInstalledAPK() throws PhoneException { // TODO Auto-generated method stub return null; } @Override public ArrayList<String> getForegroundApp() throws PhoneException { // TODO Auto-generated method stub return null; } @Override public void startTestingMode(String resultDir, String configFile) throws PhoneException { // TODO Auto-generated method stub } @Override public String getSerialNumber() { // TODO Auto-generated method stub return null; } @Override public void pullData(String source, String destination) { } }