commit | 0381f9a7b4c0d27387bae44ea2f3b048fad1830c | [log] [tgz] |
---|---|---|
author | mukesh agrawal <quiche@chromium.org> | Thu Jul 11 16:41:52 2013 -0700 |
committer | ChromeBot <chrome-bot@google.com> | Mon Jul 15 18:09:05 2013 -0700 |
tree | e2d24d6b0be7064e1832b6f705c9bfb1642272c3 | |
parent | ee6b3d7f9d49fa52072a352fbb59f06127b1ba4c [diff] |
shill: cellular: improve handling of CellularService state As noted in crbug.com/246456#c1, when using a PPP dongle, we don't let the Cellular object SelectService on the CellularService. That avoids potential conflicts where both Cellular and PPPDevice are trying to manage the IP configuration of the Service. However, there are some state change events that need to be propagated to the Service. In particular, when the modem disconnects, we need to move the Service to the idle state. Fix this by overriding the various service-state-setting methods with versions that punt over to PPPDevice, when appropriate. While there: - mark Cellular::OnNoNetworkRouting as override-ing - move cleanup of MockCellularService to CellularTest:TearDown (instead of being the responsibility of individual tests) BUG=chromium:252067 TEST=new unit tests, manual (see below) Manual testing -------------- 1. plug in ppp dongle 2. wait for dongle to connect 3. chrome://settings -> Mobile data -> <provider> -> Disconnect 4. wait for disconnect to complete 5. "Mobile data" should show "Not connected" 6. chrome://network should show the Cellular service in "idle" state. 7. ifconfig should not show any ppp device (e.g. ppp0, ppp1) 8. Mobile data -> <provider> -> Connect 9. connect should succeed Change-Id: I512c98ef8cc187fa039e58ad66da604ff1739063 Reviewed-on: https://gerrit.chromium.org/gerrit/61625 Reviewed-by: Ben Chan <benchan@chromium.org> Commit-Queue: mukesh agrawal <quiche@chromium.org> Tested-by: mukesh agrawal <quiche@chromium.org>