diff --git a/zip_unittest.cc b/zip_unittest.cc
index 72bd7f3..c73d28d 100644
--- a/zip_unittest.cc
+++ b/zip_unittest.cc
@@ -1,14 +1,16 @@
-// Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #include <string.h>
 #include <unistd.h>
+
 #include <string>
 #include <vector>
+
 #include <gtest/gtest.h>
+
 #include "update_engine/bzip.h"
-#include "update_engine/gzip.h"
 #include "update_engine/test_utils.h"
 #include "update_engine/utils.h"
 
@@ -30,29 +32,6 @@
                            std::vector<char>* out) const = 0;
 };
 
-class GzipTest {};
-
-template <>
-class ZipTest<GzipTest> : public ::testing::Test {
- public:
-  bool ZipDecompress(const std::vector<char>& in,
-                     std::vector<char>* out) const {
-    return GzipDecompress(in, out);
-  }
-  bool ZipCompress(const std::vector<char>& in,
-                   std::vector<char>* out) const {
-    return GzipCompress(in, out);
-  }
-  bool ZipCompressString(const std::string& str,
-                         std::vector<char>* out) const {
-    return GzipCompressString(str, out);
-  }
-  bool ZipDecompressString(const std::string& str,
-                           std::vector<char>* out) const {
-    return GzipDecompressString(str, out);
-  }
-};
-
 class BzipTest {};
 
 template <>
@@ -76,8 +55,7 @@
   }
 };
 
-typedef ::testing::Types<GzipTest, BzipTest>
-    ZipTestTypes;
+typedef ::testing::Types<BzipTest> ZipTestTypes;
 TYPED_TEST_CASE(ZipTest, ZipTestTypes);
 
 
