shill: Sort services with respect to "portal"

BUG=chromium-os:31686
TEST=New unit test

Change-Id: Iea8424a9858557e6e29499a703b1196c9f379239
Reviewed-on: https://gerrit.chromium.org/gerrit/24949
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
diff --git a/manager_unittest.cc b/manager_unittest.cc
index fa7c28b..396f855 100644
--- a/manager_unittest.cc
+++ b/manager_unittest.cc
@@ -1530,12 +1530,20 @@
 
   // Connected.
   EXPECT_CALL(*mock_service0.get(), state())
-      .WillRepeatedly(Return(Service::kStateConnected));
+      .WillRepeatedly(Return(Service::kStatePortal));
   EXPECT_CALL(*mock_service0.get(), IsConnected())
       .WillRepeatedly(Return(true));
   manager()->UpdateService(mock_service0);
   EXPECT_TRUE(ServiceOrderIs(mock_service0, mock_service1));
 
+  // Portal.
+  EXPECT_CALL(*mock_service1.get(), state())
+      .WillRepeatedly(Return(Service::kStateConnected));
+  EXPECT_CALL(*mock_service1.get(), IsConnected())
+      .WillRepeatedly(Return(true));
+  manager()->UpdateService(mock_service1);
+  EXPECT_TRUE(ServiceOrderIs(mock_service1, mock_service0));
+
   manager()->DeregisterService(mock_service0);
   manager()->DeregisterService(mock_service1);
 }