// Copyright 2016 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. #include "base/files/file_path.h" #include "base/path_service.h" #include "components/update_client/utils.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" using std::string; namespace { base::FilePath MakeTestFilePath(const char* file) { base::FilePath path; PathService::Get(base::DIR_SOURCE_ROOT, &path); return path.AppendASCII("components/test/data/update_client") .AppendASCII(file); } } // namespace namespace update_client { TEST(UpdateClientUtils, BuildProtocolRequest_DownloadPreference) { const string emptystr; // Verifies that an empty |download_preference| is not serialized. const string request_no_dlpref = BuildProtocolRequest( emptystr, emptystr, emptystr, emptystr, emptystr, emptystr, emptystr); EXPECT_EQ(string::npos, request_no_dlpref.find(" dlpref=")); // Verifies that |download_preference| is serialized. const string request_with_dlpref = BuildProtocolRequest( emptystr, emptystr, emptystr, emptystr, "some pref", emptystr, emptystr); EXPECT_NE(string::npos, request_with_dlpref.find(" dlpref=\"some pref\"")); } TEST(UpdateClientUtils, VerifyFileHash256) { EXPECT_TRUE(VerifyFileHash256( MakeTestFilePath("jebgalgnebhfojomionfpkfelancnnkf.crx"), std::string( "6fc4b93fd11134de1300c2c0bb88c12b644a4ec0fd7c9b12cb7cc067667bde87"))); EXPECT_FALSE(VerifyFileHash256( MakeTestFilePath("jebgalgnebhfojomionfpkfelancnnkf.crx"), std::string(""))); EXPECT_FALSE(VerifyFileHash256( MakeTestFilePath("jebgalgnebhfojomionfpkfelancnnkf.crx"), std::string("abcd"))); EXPECT_FALSE(VerifyFileHash256( MakeTestFilePath("jebgalgnebhfojomionfpkfelancnnkf.crx"), std::string( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))); } } // namespace update_client