Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(443)

Unified Diff: rlz/win/lib/machine_deal_test.cc

Issue 10597002: Check-in rlz code to src\rlz from http://code.google.com/p/rlz/. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: update license and try clobber build Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « rlz/win/lib/machine_deal.cc ('k') | rlz/win/lib/machine_id_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: rlz/win/lib/machine_deal_test.cc
===================================================================
--- rlz/win/lib/machine_deal_test.cc (revision 0)
+++ rlz/win/lib/machine_deal_test.cc (revision 0)
@@ -0,0 +1,156 @@
+// Copyright (c) 2012 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.
+//
+// A test application for the MachineDealCode class.
+//
+// These tests should not be executed on the build server:
+// - They assert for the failed cases.
+// - They modify machine state (registry).
+//
+// These tests require write access to HKLM and HKCU, unless
+// rlz_lib::CreateMachineState() has been successfully called.
+
+#include "base/logging.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#include "rlz/test/rlz_test_helpers.h"
+#include "rlz/win/lib/machine_deal.h"
+
+class MachineDealCodeHelper : public rlz_lib::MachineDealCode {
+ public:
+ static bool Clear() { return rlz_lib::MachineDealCode::Clear(); }
+
+ private:
+ MachineDealCodeHelper() {}
+ ~MachineDealCodeHelper() {}
+};
+
+class MachineDealCodeTest : public RlzLibTestBase {
+};
+
+TEST_F(MachineDealCodeTest, CreateMachineState) {
+ EXPECT_TRUE(rlz_lib::CreateMachineState());
+}
+
+TEST_F(MachineDealCodeTest, Set) {
+ MachineDealCodeHelper::Clear();
+ char dcc_50[50];
+ dcc_50[0] = 0;
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Set("dcc_value"));
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("dcc_value", dcc_50);
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Set("dcc_value_2"));
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("dcc_value_2", dcc_50);
+}
+
+TEST_F(MachineDealCodeTest, Get) {
+ MachineDealCodeHelper::Clear();
+ char dcc_50[50], dcc_2[2];
+ dcc_50[0] = 0;
+ dcc_2[0] = 0;
+
+ EXPECT_FALSE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Set("dcc_value"));
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("dcc_value", dcc_50);
+
+ EXPECT_FALSE(rlz_lib::MachineDealCode::Get(dcc_2, 2));
+}
+
+TEST_F(MachineDealCodeTest, SetFromPingResponse) {
+ rlz_lib::MachineDealCode::Set("MyDCCode");
+ char dcc_50[50];
+
+ // Bad responses
+
+ char* kBadDccResponse =
+ "dcc: NotMyDCCode \r\n"
+ "set_dcc: NewDCCode\r\n"
+ "crc32: 1B4D6BB3";
+ EXPECT_FALSE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kBadDccResponse));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("MyDCCode", dcc_50);
+
+ char* kBadCrcResponse =
+ "dcc: MyDCCode \r\n"
+ "set_dcc: NewDCCode\r\n"
+ "crc32: 90707106";
+ EXPECT_FALSE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kBadCrcResponse));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("MyDCCode", dcc_50);
+
+ // Good responses
+
+ char* kMissingSetResponse =
+ "dcc: MyDCCode \r\n"
+ "crc32: 35F2E717";
+ EXPECT_TRUE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kMissingSetResponse));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("MyDCCode", dcc_50);
+
+ char* kGoodResponse =
+ "dcc: MyDCCode \r\n"
+ "set_dcc: NewDCCode\r\n"
+ "crc32: C8540E02";
+ EXPECT_TRUE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kGoodResponse));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("NewDCCode", dcc_50);
+
+ char* kGoodResponse2 =
+ "set_dcc: NewDCCode2 \r\n"
+ "dcc: NewDCCode \r\n"
+ "crc32: 60B6409A";
+ EXPECT_TRUE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kGoodResponse2));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("NewDCCode2", dcc_50);
+
+ MachineDealCodeHelper::Clear();
+ char* kGoodResponse3 =
+ "set_dcc: NewDCCode \r\n"
+ "crc32: 374C1C47";
+ EXPECT_TRUE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kGoodResponse3));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("NewDCCode", dcc_50);
+
+ MachineDealCodeHelper::Clear();
+ char* kGoodResponse4 =
+ "dcc: \r\n"
+ "set_dcc: NewDCCode \r\n"
+ "crc32: 0AB1FB39";
+ EXPECT_TRUE(rlz_lib::MachineDealCode::SetFromPingResponse(
+ kGoodResponse4));
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Get(dcc_50, 50));
+ EXPECT_STREQ("NewDCCode", dcc_50);
+}
+
+TEST_F(MachineDealCodeTest, GetAsCgi) {
+ MachineDealCodeHelper::Clear();
+ char cgi_50[50], cgi_2[2];
+ cgi_50[0] = 0;
+ cgi_2[0] = 0;
+
+ EXPECT_FALSE(rlz_lib::MachineDealCode::GetAsCgi(cgi_50, 50));
+ EXPECT_STREQ("", cgi_50);
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::Set("dcc_value"));
+
+ EXPECT_TRUE(rlz_lib::MachineDealCode::GetAsCgi(cgi_50, 50));
+ EXPECT_STREQ("dcc=dcc_value", cgi_50);
+
+ EXPECT_FALSE(rlz_lib::MachineDealCode::GetAsCgi(cgi_2, 2));
+}
« no previous file with comments | « rlz/win/lib/machine_deal.cc ('k') | rlz/win/lib/machine_id_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698