1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-04-13 14:20:50 +01:00

Update Gmail workload to attached images to sample email

Adds 5 image files to the email before sending.
This commit is contained in:
James Hartley 2016-04-28 21:35:12 +01:00
parent b0d0a19bf0
commit 73a54103e1
3 changed files with 54 additions and 1 deletions

View File

@ -42,6 +42,20 @@ class Gmail(AndroidUiAutoBenchmark):
super(Gmail, self).__init__(device, **kwargs)
self.uiauto_params['recipient'] = self.recipient
def setup(self, context):
super(Gmail, self).setup(context)
self.camera_dir = self.device.path.join(self.device.external_storage_directory,
'DCIM/Camera/')
for file in os.listdir(self.dependencies_directory):
if file.endswith(".jpg"):
self.device.push_file(os.path.join(self.dependencies_directory, file),
os.path.join(self.camera_dir, file), timeout=300)
# Force a re-index of the mediaserver cache to pick up new files
self.device.execute('am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdcard')
def validate(self):
super(Gmail, self).validate()
self.output_file = os.path.join(self.device.working_directory, self.instrumentation_log)

View File

@ -14,8 +14,9 @@ import com.arm.wlauto.uiauto.UxPerfUiAutomation;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.LinkedHashMap;
import java.util.concurrent.TimeUnit;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
@ -24,6 +25,7 @@ public class UiAutomation extends UxPerfUiAutomation {
public static String TAG = "uxperf_gmail";
private Bundle parameters;
private long networkTimeout = TimeUnit.SECONDS.toMillis(20);
private LinkedHashMap<String, Timer> timingResults = new LinkedHashMap<String, Timer>();
public void runUiAutomation() throws Exception {
@ -38,6 +40,7 @@ public class UiAutomation extends UxPerfUiAutomation {
setToField();
setSubjectField();
setComposeField();
attachFiles();
clickSendButton();
result.end();
@ -53,6 +56,12 @@ public class UiAutomation extends UxPerfUiAutomation {
gotItBox.clickAndWaitForNewWindow();
UiObject takeMeToBox = getUiObjectByText("Take me to Gmail", "android.widget.TextView");
takeMeToBox.clickAndWaitForNewWindow();
UiObject converationView = new UiObject(new UiSelector()
.resourceId("com.google.android.gm:id/conversation_list_view")
.className("android.widget.ListView"));
if (!converationView.waitForExists(networkTimeout)) {
throw new UiObjectNotFoundException("Could not find \"converationView\".");
};
}
public void clickNewMail() throws Exception {
@ -104,6 +113,36 @@ public class UiAutomation extends UxPerfUiAutomation {
timingResults.put("Send", result);
}
public void attachFiles() throws Exception {
Timer result = new Timer();
UiObject attachIcon = getUiObjectByResourceId("com.google.android.gm:id/add_attachment",
"android.widget.TextView");
String [] imageFiles = {"1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"};
result.start();
for ( int i=0; i < imageFiles.length; i++) {
attachIcon.clickAndWaitForNewWindow(timeout);
UiObject attachFile = getUiObjectByText("Attach file", "android.widget.TextView");
attachFile.clickAndWaitForNewWindow(timeout);
UiObject imagesEntry = getUiObjectByText("Images", "android.widget.TextView");
imagesEntry.clickAndWaitForNewWindow(timeout);
UiObject listView = new UiObject(new UiSelector().textContains("List view")
.className("android.webkit.WebView"));
if (listView.exists()) {
listView.clickAndWaitForNewWindow(timeout);
}
UiObject cameraEntry = getUiObjectByText("Camera", "android.widget.TextView");
cameraEntry.clickAndWaitForNewWindow(timeout);
UiObject oneJpg = getUiObjectByText(imageFiles[i], "android.widget.TextView");
oneJpg.clickAndWaitForNewWindow(timeout);
}
result.end();
timingResults.put("AttachFiles", result);
}
private void writeResultsToFile(LinkedHashMap timingResults, String file) throws Exception {
// Write out the key/value pairs to the instrumentation log file
FileWriter fstream = new FileWriter(file);