shill: when we find an Endpoint for a WiFiService that hasn't been
registered with the Manager, register that service.

BUG=chromium-os:23713
TEST=unit tests, manual

Manual testing: ran network_WiFiSecMat.031CheckHidden_WPA, and
verified that the hidden service is registered with the manager.
(The autotest still fails, but for different reasons than before.)

Collateral change: don't create services with empty SSIDs.
They're not useful for anything, and would probably confuse
users.

Change-Id: Ie9aa8743d55de4dcd913fb089fc06a533cc065ef
Reviewed-on: https://gerrit.chromium.org/gerrit/12472
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: mukesh agrawal <quiche@chromium.org>
diff --git a/mock_manager.h b/mock_manager.h
index 97b592c..aa035ad 100644
--- a/mock_manager.h
+++ b/mock_manager.h
@@ -22,6 +22,7 @@
   MOCK_METHOD0(device_info, DeviceInfo*(void));
   MOCK_METHOD0(mutable_store, PropertyStore*(void));
   MOCK_CONST_METHOD0(store, const PropertyStore&(void));
+  MOCK_METHOD1(HasService, bool(const ServiceRefPtr &to_manage));
   MOCK_METHOD1(RegisterService, void(const ServiceRefPtr &to_manage));
   MOCK_METHOD1(UpdateService, void(const ServiceRefPtr &to_update));
   MOCK_METHOD1(DeregisterService, void(const ServiceRefPtr &to_forget));