Home | History | Annotate | Download | only in safe_browsing
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/renderer/safe_browsing/features.h"
      6 
      7 #include "base/format_macros.h"
      8 #include "base/strings/stringprintf.h"
      9 #include "chrome/renderer/safe_browsing/test_utils.h"
     10 #include "testing/gtest/include/gtest/gtest.h"
     11 
     12 namespace safe_browsing {
     13 
     14 TEST(PhishingFeaturesTest, TooManyFeatures) {
     15   FeatureMap features;
     16   for (size_t i = 0; i < FeatureMap::kMaxFeatureMapSize; ++i) {
     17     EXPECT_TRUE(features.AddBooleanFeature(
     18         base::StringPrintf("Feature%" PRIuS, i)));
     19   }
     20   EXPECT_EQ(FeatureMap::kMaxFeatureMapSize, features.features().size());
     21 
     22   // Attempting to add more features should fail.
     23   for (size_t i = 0; i < 3; ++i) {
     24     EXPECT_FALSE(features.AddBooleanFeature(
     25         base::StringPrintf("Extra%" PRIuS, i)));
     26   }
     27   EXPECT_EQ(FeatureMap::kMaxFeatureMapSize, features.features().size());
     28 }
     29 
     30 TEST(PhishingFeaturesTest, IllegalFeatureValue) {
     31   FeatureMap features;
     32   EXPECT_FALSE(features.AddRealFeature("toosmall", -0.1));
     33   EXPECT_TRUE(features.AddRealFeature("zero", 0.0));
     34   EXPECT_TRUE(features.AddRealFeature("pointfive", 0.5));
     35   EXPECT_TRUE(features.AddRealFeature("one", 1.0));
     36   EXPECT_FALSE(features.AddRealFeature("toolarge", 1.1));
     37 
     38   FeatureMap expected_features;
     39   expected_features.AddRealFeature("zero", 0.0);
     40   expected_features.AddRealFeature("pointfive", 0.5);
     41   expected_features.AddRealFeature("one", 1.0);
     42   ExpectFeatureMapsAreEqual(features, expected_features);
     43 }
     44 
     45 }  // namespace safe_browsing
     46