Merge: Create pdfium_unittests binary. [XFA]

Original CL at https://codereview.chromium.org/831653002/

TBR=palmer@chromium.org, brucedawson@chromium.org

Review URL: https://codereview.chromium.org/830553002
diff --git a/BUILD.gn b/BUILD.gn
index 0d3d693..6681871 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1540,3 +1540,16 @@
     "//v8:v8_libplatform",
   ]
 }
+
+executable("pdfium_unittests") {
+  testonly = true
+  sources = [
+    "core/src/fxcrt/fx_basic_bstring_unittest.cpp",
+  ]
+  deps = [
+    ":pdfium",
+    "//base",
+    "//base/test:run_all_unittests",
+    "//testing/gtest",
+  ]
+}
diff --git a/core/src/fxcrt/fx_basic_bstring_unittest.cpp b/core/src/fxcrt/fx_basic_bstring_unittest.cpp
new file mode 100644
index 0000000..cf5e05d
--- /dev/null
+++ b/core/src/fxcrt/fx_basic_bstring_unittest.cpp
@@ -0,0 +1,42 @@
+// Copyright 2014 PDFium 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 "testing/gtest/include/gtest/gtest.h"
+
+#include "../../include/fxcrt/fx_basic.h"
+
+TEST(fxcrt, ByteStringCNull) {
+  CFX_ByteStringC null_string;
+  EXPECT_EQ(null_string.GetPtr(), nullptr);
+  EXPECT_EQ(null_string.GetLength(), 0);
+  EXPECT_TRUE(null_string.IsEmpty());
+
+  CFX_ByteStringC another_null_string;
+  EXPECT_TRUE(null_string == another_null_string);
+
+  CFX_ByteString copied_null_string(null_string);
+  EXPECT_EQ(null_string.GetPtr(), nullptr);
+  EXPECT_EQ(null_string.GetLength(), 0);
+  EXPECT_TRUE(null_string.IsEmpty());
+  EXPECT_TRUE(null_string == another_null_string);
+
+  CFX_ByteStringC empty_string("");
+  EXPECT_EQ(null_string.GetPtr(), nullptr);
+  EXPECT_EQ(null_string.GetLength(), 0);
+  EXPECT_TRUE(null_string.IsEmpty());
+  EXPECT_TRUE(null_string == empty_string);
+
+  CFX_ByteStringC non_null_string("a");
+  EXPECT_FALSE(null_string == non_null_string);
+
+  // TODO(tsepez): fix assignment of a null ptr to a CFX_ByteStringC.
+}
+
+TEST(fxcrt, ByteStringCGetID) {
+  CFX_ByteStringC null_string;
+  EXPECT_EQ(null_string.GetID(), 0u);
+
+  CFX_ByteStringC empty_string("");
+  EXPECT_EQ(empty_string.GetID(), 0u);
+}
diff --git a/pdfium.gyp b/pdfium.gyp
index 13f22ea..8b0a8b3 100644
--- a/pdfium.gyp
+++ b/pdfium.gyp
@@ -883,5 +883,21 @@
         'fpdfsdk/src/formfiller/FFL_Utils.cpp',
       ],
     },
+    {
+      'target_name': 'pdfium_unittests',
+      'type': 'executable',
+      'dependencies': [
+        '../../base/base.gyp:base_prefs',
+        '../../base/base.gyp:run_all_unittests',
+        '../../testing/gtest.gyp:gtest',
+        'pdfium',
+      ],
+      'include_dirs': [
+        '<(DEPTH)'
+      ],
+      'sources': [
+        'core/src/fxcrt/fx_basic_bstring_unittest.cpp',
+      ],
+    }
   ],
 }