Index: chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ab3cabd2c1187e3312150dc5a08da45ae19aa48c |
--- /dev/null |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java |
@@ -0,0 +1,158 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser.download; |
+ |
+import android.content.pm.PackageManager; |
+import android.test.InstrumentationTestCase; |
+import android.test.MoreAsserts; |
+import android.test.suitebuilder.annotation.SmallTest; |
+ |
+import org.chromium.base.test.util.Feature; |
+ |
+import java.io.ByteArrayInputStream; |
+import java.util.List; |
+ |
+/** |
+ * Tests for OMADownloadHandler class. |
+ */ |
+public class OMADownloadHandlerTest extends InstrumentationTestCase { |
+ |
+ /** |
+ * Test to make sure {@link OMADownloadHandler#getSize} returns the |
+ * right size for OMAInfo. |
+ */ |
+ @SmallTest |
+ @Feature({"OMADownloadHandler"}) |
+ public void testGetSize() { |
+ OMADownloadHandler.OMAInfo info = new OMADownloadHandler.OMAInfo(); |
+ assertEquals(OMADownloadHandler.getSize(info), 0); |
+ |
+ info.addAttributeValue("size", "100"); |
+ assertEquals(OMADownloadHandler.getSize(info), 100); |
+ |
+ info.addAttributeValue("size", "100,000"); |
+ assertEquals(OMADownloadHandler.getSize(info), 100000); |
+ |
+ info.addAttributeValue("size", "100000"); |
+ assertEquals(OMADownloadHandler.getSize(info), 100000); |
+ } |
+ |
+ /** |
+ * Test to make sure {@link OMADownloadHandler.OMAInfo#getDrmType} returns the |
+ * right DRM type. |
+ */ |
+ @SmallTest |
+ @Feature({"OMADownloadHandler"}) |
+ public void testGetDrmType() { |
+ OMADownloadHandler.OMAInfo info = new OMADownloadHandler.OMAInfo(); |
+ assertEquals(info.getDrmType(), null); |
+ |
+ info.addAttributeValue("type", "text/html"); |
+ assertEquals(info.getDrmType(), null); |
+ |
+ info.addAttributeValue("type", OMADownloadHandler.OMA_DRM_MESSAGE_MIME); |
+ assertEquals(info.getDrmType(), OMADownloadHandler.OMA_DRM_MESSAGE_MIME); |
+ |
+ // Test that only the first DRM MIME type is returned. |
+ info.addAttributeValue("type", OMADownloadHandler.OMA_DRM_CONTENT_MIME); |
+ assertEquals(info.getDrmType(), OMADownloadHandler.OMA_DRM_MESSAGE_MIME); |
+ } |
+ |
+ /** |
+ * Test to make sure {@link OMADownloadHandler#getOpennableType} returns the |
+ * right MIME type. |
+ */ |
+ @SmallTest |
+ @Feature({"OMADownloadHandler"}) |
+ public void testGetOpennableType() { |
+ PackageManager pm = getInstrumentation().getContext().getPackageManager(); |
+ OMADownloadHandler.OMAInfo info = new OMADownloadHandler.OMAInfo(); |
+ assertEquals(OMADownloadHandler.getOpennableType(pm, info), null); |
+ |
+ info.addAttributeValue(OMADownloadHandler.OMA_TYPE, "application/octet-stream"); |
+ info.addAttributeValue(OMADownloadHandler.OMA_TYPE, |
+ OMADownloadHandler.OMA_DRM_MESSAGE_MIME); |
+ info.addAttributeValue(OMADownloadHandler.OMA_TYPE, "text/html"); |
+ assertEquals(OMADownloadHandler.getOpennableType(pm, info), null); |
+ |
+ info.addAttributeValue(OMADownloadHandler.OMA_OBJECT_URI, "http://www.test.com/test.html"); |
+ assertEquals(OMADownloadHandler.getOpennableType(pm, info), "text/html"); |
+ |
+ // Test that only the first opennable type is returned. |
+ info.addAttributeValue(OMADownloadHandler.OMA_TYPE, "image/png"); |
+ assertEquals(OMADownloadHandler.getOpennableType(pm, info), "text/html"); |
+ } |
+ |
+ /** |
+ * Test to make sure {@link OMADownloadHandler#parseDownloadDescriptor} returns the |
+ * correct OMAInfo if the input is valid. |
+ */ |
+ @SmallTest |
+ @Feature({"OMADownloadHandler"}) |
+ public void testParseValidDownloadDescriptor() { |
+ String downloadDescriptor = |
+ "<media xmlns=\"http://www.openmobilealliance.org/xmlns/dd\">\r\n" |
+ + "<DDVersion>1.0</DDVersion>\r\n" |
+ + "<name>test.dm</name>\r\n" |
+ + "<size>1,000</size>\r\n" |
+ + "<type>image/jpeg</type>\r\n" |
+ + "<garbage>this is just garbage</garbage>\r\n" |
+ + "<type>application/vnd.oma.drm.message</type>\r\n" |
+ + "<vendor>testvendor</vendor>\r\n" |
+ + "<description>testjpg</description>\r\n" |
+ + "<objectURI>http://test/test.dm</objectURI>\r\n" |
+ + "<nextURL>http://nexturl.html</nextURL>\r\n" |
+ + "</media>"; |
+ OMADownloadHandler.OMAInfo info = OMADownloadHandler.parseDownloadDescriptor( |
+ new ByteArrayInputStream(downloadDescriptor.getBytes())); |
+ assertFalse(info.isEmpty()); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_OBJECT_URI), "http://test/test.dm"); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_DD_VERSION), "1.0"); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_NAME), "test.dm"); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_SIZE), "1,000"); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_VENDOR), "testvendor"); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_DESCRIPTION), "testjpg"); |
+ assertEquals(info.getValue(OMADownloadHandler.OMA_NEXT_URL), "http://nexturl.html"); |
+ List<String> types = info.getTypes(); |
+ MoreAsserts.assertContentsInAnyOrder( |
+ types, "image/jpeg", OMADownloadHandler.OMA_DRM_MESSAGE_MIME); |
+ } |
+ |
+ /** |
+ * Test that {@link OMADownloadHandler#parseDownloadDescriptor} returns empty |
+ * result on invalid input. |
+ */ |
+ @SmallTest |
+ @Feature({"OMADownloadHandler"}) |
+ public void testParseInvalidDownloadDescriptor() { |
+ String downloadDescriptor = |
+ "<media xmlns=\"http://www.openmobilealliance.org/xmlns/dd\">\r\n" |
+ + "</media>"; |
+ OMADownloadHandler.OMAInfo info = OMADownloadHandler.parseDownloadDescriptor( |
+ new ByteArrayInputStream(downloadDescriptor.getBytes())); |
+ assertTrue(info.isEmpty()); |
+ |
+ downloadDescriptor = |
+ "<media xmlns=\"http://www.openmobilealliance.org/xmlns/dd\">\r\n" |
+ + "<DDVersion>1.0</DDVersion>\r\n" |
+ + "<name>" |
+ + "<size>1,000</size>\r\n" |
+ + "test.dm" |
+ + "</name>\r\n" |
+ + "</media>"; |
+ info = OMADownloadHandler.parseDownloadDescriptor( |
+ new ByteArrayInputStream(downloadDescriptor.getBytes())); |
+ assertNull(info); |
+ |
+ downloadDescriptor = |
+ "garbage" |
+ + "<media xmlns=\"http://www.openmobilealliance.org/xmlns/dd\">\r\n" |
+ + "<DDVersion>1.0</DDVersion>\r\n" |
+ + "</media>"; |
+ info = OMADownloadHandler.parseDownloadDescriptor( |
+ new ByteArrayInputStream(downloadDescriptor.getBytes())); |
+ assertNull(info); |
+ } |
+} |