Bug 1184186 - Convert robocop testJNI to mochitest-chrome; r=nalexander
authorGeoff Brown <gbrown@mozilla.com>
Thu, 06 Aug 2015 07:27:47 -0600
changeset 288183 a252287c186c97395bd54d5f12e54857b7ecb30f
parent 288182 f4fc37fa5a2cbe2e6bfbe23424fe1b9ebd48eff8
child 288184 c87adb72050b7eb63810df50d457607ab4e7c329
push id5067
push userraliiev@mozilla.com
push dateMon, 21 Sep 2015 14:04:52 +0000
treeherdermozilla-beta@14221ffe5b2f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnalexander
bugs1184186
milestone42.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1184186 - Convert robocop testJNI to mochitest-chrome; r=nalexander
mobile/android/tests/browser/chrome/chrome.ini
mobile/android/tests/browser/chrome/test_jni.html
mobile/android/tests/browser/robocop/robocop.ini
mobile/android/tests/browser/robocop/testJNI.java
mobile/android/tests/browser/robocop/testJNI.js
--- a/mobile/android/tests/browser/chrome/chrome.ini
+++ b/mobile/android/tests/browser/chrome/chrome.ini
@@ -8,9 +8,10 @@ support-files =
 [test_accounts.html]
 [test_android_log.html]
 [test_app_constants.html]
 [test_debugger_server.html]
 [test_desktop_useragent.html]
 [test_device_search_engine.html]
 [test_home_provider.html]
 [test_java_addons.html]
+[test_jni.html]
 [test_resource_substitutions.html]
new file mode 100644
--- /dev/null
+++ b/mobile/android/tests/browser/chrome/test_jni.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=873569
+Migrated from Robocop: https://bugzilla.mozilla.org/show_bug.cgi?id=1184186
+-->
+<head>
+  <meta charset="utf-8">
+  <title>Test for Bug 873569</title>
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="chrome://global/skin"/>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
+  <script type="application/javascript;version=1.7">
+
+  Components.utils.import("resource://gre/modules/ctypes.jsm");
+  Components.utils.import("resource://gre/modules/JNI.jsm");
+
+  function test_JNI() {
+    var jenv = null;
+    try {
+      jenv = JNI.GetForThread();
+
+      // Test a simple static method.
+      var geckoAppShell = JNI.LoadClass(jenv, "org.mozilla.gecko.GeckoAppShell", {
+        static_methods: [
+          { name: "getPreferredIconSize", sig: "()I" },
+          { name: "getContext", sig: "()Landroid/content/Context;" },
+        ],
+      });
+
+      let iconSize = -1;
+      iconSize = geckoAppShell.getPreferredIconSize();
+      isnot(iconSize, -1, "icon size is valid");
+
+      // Test GeckoNetworkManager methods that are accessed by PaymentsUI.js.
+      // The return values can vary, so we can't test for equivalence, but we
+      // can ensure that the method calls return values of the correct type.
+      let jGeckoNetworkManager = JNI.LoadClass(jenv, "org/mozilla/gecko/GeckoNetworkManager", {
+        static_methods: [
+          { name: "getMNC", sig: "()I" },
+          { name: "getMCC", sig: "()I" },
+        ],
+      });
+      is(typeof jGeckoNetworkManager.getMNC(), "number", "typeof getMNC is number");
+      is(typeof jGeckoNetworkManager.getMCC(), "number", "typeof getMCC is number");
+
+      // Test retrieving the context's class's name, which tests dynamic method
+      // invocation as well as converting a Java string to JavaScript.
+      JNI.LoadClass(jenv, "android.content.Context", {
+        methods: [
+          { name: "getClass", sig: "()Ljava/lang/Class;" },
+        ],
+      });
+      JNI.LoadClass(jenv, "java.lang.Class", {
+        methods: [
+          { name: "getName", sig: "()Ljava/lang/String;" },
+        ],
+      });
+      is("org.mozilla.gecko.BrowserApp", JNI.ReadString(jenv, geckoAppShell.getContext().getClass().getName()), "class name is correct");
+    } finally {
+      if (jenv) {
+        JNI.UnloadClasses(jenv);
+      }
+    }
+  }
+
+  test_JNI();
+
+  </script>
+</head>
+<body>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=873569">Mozilla Bug 873569</a>
+<br>
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184186">Migrated from Robocop testJNI</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>
--- a/mobile/android/tests/browser/robocop/robocop.ini
+++ b/mobile/android/tests/browser/robocop/robocop.ini
@@ -111,17 +111,16 @@ skip-if = android_version == "10" || and
 # Using JavascriptTest
 [testBrowserDiscovery.java]
 # disabled on 4.3, bug 1158384
 skip-if = android_version == "18"
 [testFilePicker.java]
 [testHistoryService.java]
 # disabled on 4.3, bug 1116036
 skip-if = android_version == "18"
-[testJNI.java]
 # [testMozPay.java] # see bug 945675
 [testMigrateUI.java]
 [testNetworkManager.java]
 [testOfflinePage.java]
 [testOrderedBroadcast.java]
 [testOSLocale.java]
 # disabled on 2.3 and 4.3: Bug 1124494
 skip-if = android_version == "10" || android_version == "18"
deleted file mode 100644
--- a/mobile/android/tests/browser/robocop/testJNI.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.gecko.tests;
-
-
-
-public class testJNI extends JavascriptTest {
-    public testJNI() {
-        super("testJNI.js");
-    }
-}
deleted file mode 100644
--- a/mobile/android/tests/browser/robocop/testJNI.js
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-Components.utils.import("resource://gre/modules/ctypes.jsm");
-Components.utils.import("resource://gre/modules/JNI.jsm");
-
-add_task(function test_JNI() {
-  var jenv = null;
-  try {
-    jenv = JNI.GetForThread();
-
-    // Test a simple static method.
-    var geckoAppShell = JNI.LoadClass(jenv, "org.mozilla.gecko.GeckoAppShell", {
-      static_methods: [
-        { name: "getPreferredIconSize", sig: "()I" },
-        { name: "getContext", sig: "()Landroid/content/Context;" },
-      ],
-    });
-
-    let iconSize = -1;
-    iconSize = geckoAppShell.getPreferredIconSize();
-    do_check_neq(iconSize, -1);
-
-    // Test GeckoNetworkManager methods that are accessed by PaymentsUI.js.
-    // The return values can vary, so we can't test for equivalence, but we
-    // can ensure that the method calls return values of the correct type.
-    let jGeckoNetworkManager = JNI.LoadClass(jenv, "org/mozilla/gecko/GeckoNetworkManager", {
-      static_methods: [
-        { name: "getMNC", sig: "()I" },
-        { name: "getMCC", sig: "()I" },
-      ],
-    });
-    do_check_eq(typeof jGeckoNetworkManager.getMNC(), "number");
-    do_check_eq(typeof jGeckoNetworkManager.getMCC(), "number");
-
-    // Test retrieving the context's class's name, which tests dynamic method
-    // invocation as well as converting a Java string to JavaScript.
-    JNI.LoadClass(jenv, "android.content.Context", {
-      methods: [
-        { name: "getClass", sig: "()Ljava/lang/Class;" },
-      ],
-    });
-    JNI.LoadClass(jenv, "java.lang.Class", {
-      methods: [
-        { name: "getName", sig: "()Ljava/lang/String;" },
-      ],
-    });
-    do_check_eq("org.mozilla.gecko.BrowserApp", JNI.ReadString(jenv, geckoAppShell.getContext().getClass().getName()));
-  } finally {
-    if (jenv) {
-      JNI.UnloadClasses(jenv);
-    }
-  }
-});
-
-run_next_test();