shill: Add support for connecting to PSK networks

BUG=chromium-os:21293
TEST=unittest + 2 new autotests to network_WiFiSecMat (021WPAasPSK and 022RSNasPSK)

Change-Id: Id727ca761f4457b134504fd05d5692915ab3c9eb
Reviewed-on: https://gerrit.chromium.org/gerrit/11030
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
diff --git a/wifi_service_unittest.cc b/wifi_service_unittest.cc
index 6533fa1..5c8e32e 100644
--- a/wifi_service_unittest.cc
+++ b/wifi_service_unittest.cc
@@ -196,6 +196,20 @@
   wifi_service->ConnectTask();
 }
 
+TEST_F(WiFiServiceTest, ConnectTaskPSK) {
+  vector<uint8_t> ssid(5, 0);
+  WiFiServiceRefPtr wifi_service = new WiFiService(control_interface(),
+                                                   dispatcher(),
+                                                   manager(),
+                                                   wifi(),
+                                                   ssid,
+                                                   flimflam::kModeManaged,
+                                                   flimflam::kSecurityPsk);
+  EXPECT_CALL(*wifi(),
+              ConnectTo(wifi_service.get(), WPASecurityArgs()));
+  wifi_service->ConnectTask();
+}
+
 TEST_F(WiFiServiceTest, LoadHidden) {
   vector<uint8_t> ssid(5, 0);
   ssid.push_back(0xff);