shill: Installs progressive scan in shill.

BUG=chromium:222088
TEST=unittest and manual.  The manual tests consist of:
  - Enable progressive scan.  On target, in a crosh window, do:
      o progressive_scan on
  - Start shill with log=-10/wifi.  On the target, in a shell window,
    do the following:
      o stop shill
      o shill --log-level=-10 --log-scopes=wifi
  - Wait five seconds (the code will do everything it needs to at
    startup).
  - Look in /var/log/net.log and verify the existence of the following:
      o Doing progressive scan

      o ProgressiveScanTask - scan requested for XXXX
        Initiating a scan -- returning

      o ProgressiveScanTask - scan requested for XXXX
        Ignoring scan request wile connecting to an AP

Change-Id: Ie577869aedc03230e1fab62fc8cb9f0b3850c7fb
Reviewed-on: https://gerrit.chromium.org/gerrit/50377
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
diff --git a/mock_scan_session.h b/mock_scan_session.h
new file mode 100644
index 0000000..71ca9f9
--- /dev/null
+++ b/mock_scan_session.h
@@ -0,0 +1,45 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SHILL_MOCK_SCAN_SESSION_H_
+#define SHILL_MOCK_SCAN_SESSION_H_
+
+#include "shill/scan_session.h"
+
+#include <set>
+
+#include <gmock/gmock.h>
+
+#include "shill/wifi_provider.h"
+
+namespace shill {
+
+class ByteString;
+class EventDispatcher;
+class NetlinkManager;
+
+class MockScanSession : public ScanSession {
+ public:
+  MockScanSession(NetlinkManager *netlink_manager,
+                  EventDispatcher *dispatcher,
+                  const WiFiProvider::FrequencyCountList &previous_frequencies,
+                  const std::set<uint16_t> &available_frequencies,
+                  uint32_t ifindex,
+                  const FractionList &fractions,
+                  int min_frequencies,
+                  int max_frequencies,
+                  OnScanFailed on_scan_failed);
+  virtual ~MockScanSession();
+
+  MOCK_CONST_METHOD0(HasMoreFrequencies, bool());
+  MOCK_METHOD1(AddSsid, void(const ByteString &ssid));
+  MOCK_METHOD0(InitiateScan, void());
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockScanSession);
+};
+
+}  // namespace shill
+
+#endif  // SHILL_MOCK_SCAN_SESSION_H_