crash: Remove glib from crash_reporter

As part of the minimization effort, refactor crash_reporter code to
not depend directly on glib.

BUG=brillo:87, brillo:88, chromium:435314
TEST=`FEATURES=test emerge-panther libchromeos debugd crash-reporter`
TEST=Enabled crash reports; Browsed to chrome://crash; crash files \
     generated; `FORCE_OFFICIAL=1 SECONDS_SEND_SPREAD=1 crash_sender` \
     /var/log/messages shows crash id, report shows all expected files
TEST=`cbuildbot --remote -p chromiumos/platform2 amd64-generic-full`
CQ-DEPEND=I00331e0bf29195b41cd84d4495ab47738a5a41de
CQ-DEPEND=I9df752d8995773adb56fab34dd97626f3ddf1765

Change-Id: I48b366198a7f89ca55259603cf8470e4d59321bf
Reviewed-on: https://chromium-review.googlesource.com/246441
Reviewed-by: Dan Erat <derat@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
diff --git a/crash_reporter/crash_collector_test.cc b/crash_reporter/crash_collector_test.cc
index 0ca3792..ce9af2b 100644
--- a/crash_reporter/crash_collector_test.cc
+++ b/crash_reporter/crash_collector_test.cc
@@ -5,8 +5,7 @@
 #include "crash-reporter/crash_collector_test.h"
 
 #include <unistd.h>
-
-#include <glib.h>
+#include <utility>
 
 #include <base/files/file_util.h>
 #include <base/strings/string_util.h>
@@ -19,6 +18,7 @@
 using base::FilePath;
 using base::StringPrintf;
 using chromeos::FindLog;
+using ::testing::Invoke;
 using ::testing::Return;
 
 namespace {
@@ -32,11 +32,20 @@
   return false;
 }
 
+bool GetActiveUserSessionsImpl(std::map<std::string, std::string> *sessions) {
+  char kUser[] = "chicken@butt.com";
+  char kHash[] = "hashcakes";
+  sessions->insert(std::pair<std::string, std::string>(kUser, kHash));
+  return true;
+}
+
 }  // namespace
 
 class CrashCollectorTest : public ::testing::Test {
  public:
   void SetUp() {
+    EXPECT_CALL(collector_, SetUpDBus()).WillRepeatedly(Return());
+
     collector_.Initialize(CountCrash, IsMetrics);
     test_dir_ = FilePath("test");
     base::CreateDirectory(test_dir_);
@@ -117,15 +126,8 @@
   EXPECT_EQ(kRootUid, directory_owner);
   EXPECT_EQ(kRootGid, directory_group);
 
-  // No need to destroy the hash as GetCrashDirectoryInfo() will do it for us.
-  GHashTable *active_sessions = g_hash_table_new(g_str_hash, g_str_equal);
-  char kUser[] = "chicken@butt.com";
-  char kHash[] = "hashcakes";
-  g_hash_table_insert(active_sessions,
-                      static_cast<gpointer>(kUser),
-                      static_cast<gpointer>(kHash));
-  EXPECT_CALL(collector_, GetActiveUserSessions())
-      .WillOnce(Return(active_sessions));
+  EXPECT_CALL(collector_, GetActiveUserSessions(testing::_))
+      .WillOnce(Invoke(&GetActiveUserSessionsImpl));
 
   EXPECT_EQ(collector_.IsUserSpecificDirectoryEnabled(), true);