shill: monitor bss signal strength

This wires WiFiEndpoint up to a proxy, to monitor
changes in the corresponding wpa_supplicant BSS
object.

The WiFiEndpoint object notifies its WiFi object
about the change, and WiFi relays the information
to the appropriate WiFiService.

BUG=chromium-os:16786
TEST=new unit tests, manual

Manual testing: ran on device (with --v=1000), observed
"signal is now" messages in log file.

Collateral changes:
- fix WiFiService leak in WiFi (reset |current_service| on Stop)
- suppress some "uninteresting call" messages in
  WiFiMainTest.CurrentBSSChangedUpdateServiceEndpoint

Change-Id: Ic329ecd28f73d93238d517a73105f2cd35cbff2e
Reviewed-on: https://gerrit.chromium.org/gerrit/15868
Commit-Ready: mukesh agrawal <quiche@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
diff --git a/mock_supplicant_bss_proxy.h b/mock_supplicant_bss_proxy.h
new file mode 100644
index 0000000..0de038b
--- /dev/null
+++ b/mock_supplicant_bss_proxy.h
@@ -0,0 +1,28 @@
+// Copyright (c) 2012 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 MOCK_SUPPLICANT_BSS_PROXY_H_
+#define MOCK_SUPPLICANT_BSS_PROXY_H_
+
+#include <base/basictypes.h>
+#include <gmock/gmock.h>
+
+#include "shill/supplicant_bss_proxy_interface.h"
+
+namespace shill {
+
+class MockSupplicantBSSProxy : public SupplicantBSSProxyInterface {
+ public:
+  explicit MockSupplicantBSSProxy();
+  virtual ~MockSupplicantBSSProxy();
+
+  MOCK_METHOD0(Die, void());  // So we can EXPECT the dtor.
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MockSupplicantBSSProxy);
+};
+
+}  // namespace shill
+
+#endif  // MOCK_SUPPLICANT_BSS_PROXY_H_