Bug 1264037 - Add testing for CRX reading draft
authorKirk Steuber <ksteuber@mozilla.com>
Wed, 13 Apr 2016 13:38:08 -0700
changeset 351009 5001797469625d465e0e76143aa886d68ccfdc40
parent 350335 564b225d553547fe4aa9a1039278f695c9507db9
child 518449 26bdd5fed9710e0050c645a6ac777ba2b69e6851
push id15469
push userksteuber@mozilla.com
push dateThu, 14 Apr 2016 16:31:35 +0000
bugs1264037
milestone48.0a1
Bug 1264037 - Add testing for CRX reading MozReview-Commit-ID: 3uFTOUyvFtG
modules/libjar/test/unit/data/test_crx_dummy.crx
modules/libjar/test/unit/test_crx.js
modules/libjar/test/unit/xpcshell.ini
new file mode 100644
index 0000000000000000000000000000000000000000..516e4ff8071d132dcfb0a76431954ffdba966479
GIT binary patch
literal 1102
zc${-CGBROeK!5;mW)=}3&B5?`rmfl8H5+Vem>C%I*clk)8AKU!^HWN5Qj7I-GLy0r
zi}XuUi%ax<6SGs(GILV(GV?-1I2o8F`}VnB>)q!XTEW8bW_~I|Z|M8{TLuDu_xur6
z-^Fhb>KUCGze`?=_1dCk4P1Ax)vlcLMB!e~+?#wof4^E=D=wXq**(Ey&hzs3_wHJ{
z9~9hEC?3PNu1&e4eeb~xtA^7RcXqG5C-BHP>+n>Y_S>F3%O7Tzxc*On=qVCzzWkuz
z!Zb^#RZCnmc~@B8m?J%-xbc8Vljh|2Gom(h#VOobbw7rKZL*P|P3w&18oYVRg3_&x
z+nl$(Dqnlf`o;>OX*tY6ks6%;M40NAMnpWAq@u%paHfyowL8yTo<?L%5|GQ{ni}Dj
z;r1gb_+)Ot0iE2_Yjw{p&e$8*e%dQ{#TO+dex>>EL(aavwRBoxvZ=pUx8xKf=f6GO
zBJY?)j!wDo$}iC(*YOaK`Ei$TsTRBC?w^0){r%lK>shu3eh8Pi^A{M)eC=n{6kK#P
zzSYh7S=IwR&ofRll-{)|uiCkaWd>8Qoq93r<nBqj0%BRMQAIl$&Wc-xcAn&6i7z^>
zvomkr72&hjHZI$ieCvp+@P*)+{@KSxiwti!@~Lj0GodzSVE}94HMaM~0{^~swsIsa
zDp{&}^~9XSlgHlIc)ncoKJa6W-i3Fi58ga^k{kP8{DZ(QrvtH5zspKp(cW}k`(5DW
zU!OGYn$0baD!jh*(v-*BTQWZ<GrymF|LR@VouWx$bu1a?H#b~*=2dPJ9UfsclV|CH
z*~$9PK7{Ph^SSW#W8Uox&z3R^1;>89wQKc7+n9wez90GgdFSjrC-7v}I`{Tto39qW
z4c*@IxMO8A#|M2asr|N_b|fy|8Ts7itYYf2SNoh+i<<Ati{4pcbS3bw=EGG-xw39e
zQJrEl{g~3}IVSDlc`t;r&I_~^+ds?BD=LpLP`q-BfA=SSlQmhL=g))$<#fDR+8-^>
zpJDaw@B4F;)cT4doX_`lC;hX1(CG0mrg%$C+LUE$w+RQkHNTKtG2K`s<1WX$o6k0X
zZ!!^UT6*vLQu{+TQ&NIDJI*-nIdk`}RQ<FVd*9P>%X(MO{PeR*Frxp|K8{VTKZ4>4
zUPazt`v0NJ*{c-?Rb*EQ&A(aXF++alD{d2sul#lOP5%;%cGrD<#oUtkq`on<^<w5R
zQ{A`=hm*gS2wqv8SGoI3<)yV{=Gu(YS8BZcQ+fB>mAM^kCFjHidp8zsfB4B=;7;G~
z?;j83ZpnDF_`%8YWz7#>FEQUMcjV*a9D}*O51E&qf2)_ec<sWgOC26t{0HV{MkaA)
oT=|(7oZ}gRcuOOQMKE`>LUMO#1*n{0WrOHuWQYRN=a@k}02{;lZvX%Q
new file mode 100644
--- /dev/null
+++ b/modules/libjar/test/unit/test_crx.js
@@ -0,0 +1,43 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et: */
+/* 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/. */
+
+function wrapInputStream(input)
+{
+  let nsIScriptableInputStream = Components.interfaces.nsIScriptableInputStream;
+  let factory = Components.classes["@mozilla.org/scriptableinputstream;1"];
+  let wrapper = factory.createInstance(nsIScriptableInputStream);
+  wrapper.init(input);
+  return wrapper;
+}
+
+// Make sure that we can read from CRX files as if they were ZIP files.
+function run_test() {
+  const Cc = Components.classes;
+  const Ci = Components.interfaces;
+
+  // Note: test_crx_dummy.crx is a dummy crx file created for this test. The
+  // public key and signature fields in the header are both empty.
+  let file = do_get_file("data/test_crx_dummy.crx");
+
+  let zipreader = Cc["@mozilla.org/libjar/zip-reader;1"].
+                  createInstance(Ci.nsIZipReader);
+  zipreader.open(file);
+  // do crc stuff
+  function check_archive_crc() {
+    zipreader.test(null);
+    return true;
+  }
+  Assert.ok(check_archive_crc())
+  let entries = zipreader.findEntries(null);
+  let stream = wrapInputStream(zipreader.getInputStream("modules/libjar/test/Makefile.in"))
+  let dirstream= wrapInputStream(zipreader.getInputStream("modules/libjar/test/"))
+  zipreader.close();
+  zipreader = null;
+  Components.utils.forceGC();
+  Assert.ok(stream.read(1024).length > 0);
+  Assert.ok(dirstream.read(100).length > 0);
+}
+
--- a/modules/libjar/test/unit/xpcshell.ini
+++ b/modules/libjar/test/unit/xpcshell.ini
@@ -10,16 +10,17 @@ support-files =
   data/test_bug379841.zip
   data/test_bug589292.zip
   data/test_bug597702.zip
   data/test_bug637286.zip
   data/test_bug658093.zip
   data/test_corrupt.zip
   data/test_corrupt2.zip
   data/test_corrupt3.zip
+  data/test_crx_dummy.crx
   data/test_umlaute.zip
   data/uncompressed.zip
 
 [test_jarchannel.js]
 [test_jarchannel_e10s.js]
 skip-if = os == "mac"
 [test_bug278262.js]
 [test_bug333423.js]
@@ -31,14 +32,14 @@ skip-if = os == "mac"
 [test_bug458158.js]
 [test_bug589292.js]
 [test_bug597702.js]
 [test_bug637286.js]
 [test_bug658093.js]
 [test_corrupt_536911.js]
 [test_corrupt_541828.js]
 [test_corrupt_1211262.js]
+[test_crx.js]
 [test_dirjar_bug525755.js]
 [test_jarinput_stream_zipreader_reference.js]
 [test_not_found.js]
 [test_uncompressed.js]
 [test_umlaute.js]
-