shill: connection: Flush routes when default connection changes

Also be more verbose with address configuration.

BUG=None
TEST=Unit tests

Change-Id: I7a419f416e6ed6b583d57a06b7be42ed37933593
Reviewed-on: https://gerrit.chromium.org/gerrit/24936
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/connection_unittest.cc b/connection_unittest.cc
index 05d6013..3ff7abc 100644
--- a/connection_unittest.cc
+++ b/connection_unittest.cc
@@ -26,6 +26,7 @@
 using std::string;
 using std::vector;
 using testing::_;
+using testing::Mock;
 using testing::NiceMock;
 using testing::Return;
 using testing::StrictMock;
@@ -208,13 +209,18 @@
       .WillOnce(Return(device));
   EXPECT_CALL(*device.get(), RequestPortalDetection())
       .WillOnce(Return(true));
+  EXPECT_CALL(routing_table_, FlushCache())
+      .WillOnce(Return(true));
   connection_->SetIsDefault(true);
+  Mock::VerifyAndClearExpectations(&routing_table_);
   EXPECT_TRUE(connection_->is_default());
 
   EXPECT_CALL(routing_table_,
               SetDefaultMetric(kTestDeviceInterfaceIndex0,
                                Connection::kNonDefaultMetricBase +
                                kTestDeviceInterfaceIndex0));
+  EXPECT_CALL(routing_table_, FlushCache())
+      .WillOnce(Return(true));
   connection_->SetIsDefault(false);
   EXPECT_FALSE(connection_->is_default());
 }
@@ -301,7 +307,10 @@
       .WillOnce(Return(device));
   EXPECT_CALL(*device.get(), RequestPortalDetection())
       .WillOnce(Return(true));
+  EXPECT_CALL(routing_table_, FlushCache())
+      .WillOnce(Return(true));
   connection_->SetIsDefault(true);
+  Mock::VerifyAndClearExpectations(&routing_table_);
 
   EXPECT_CALL(rtnl_handler_,
               AddInterfaceAddress(kTestDeviceInterfaceIndex0,