Index: chrome/test/pyautolib/pyauto.py |
diff --git a/chrome/test/pyautolib/pyauto.py b/chrome/test/pyautolib/pyauto.py |
index 9dba93cf9b0a0e33cd8ec4bac4864e77fa52b8cb..a0fa4645988aae0e917df410c9d5130ea7b90963 100755 |
--- a/chrome/test/pyautolib/pyauto.py |
+++ b/chrome/test/pyautolib/pyauto.py |
@@ -4744,217 +4744,36 @@ class PyUITest(pyautolib.PyUITestBase, unittest.TestCase): |
return self.WaitUntil(_GotWifiNetwork, timeout=timeout, retry_sleep=1) |
- def GetProxyTypeName(self, proxy_type): |
- values = { self.PROXY_TYPE_DIRECT: 'Direct Internet connection', |
- self.PROXY_TYPE_MANUAL: 'Manual proxy configuration', |
- self.PROXY_TYPE_PAC: 'Automatic proxy configuration' } |
- return values[proxy_type] |
- |
- def GetProxySettingsOnChromeOS(self): |
- """Get current proxy settings on Chrome OS. |
- |
- Returns: |
- A dictionary. See SetProxySetting() below |
- for the full list of possible dictionary keys. |
- |
- Samples: |
- { u'ignorelist': [], |
- u'single': False, |
- u'type': 1} |
- |
- { u'ignorelist': [u'www.example.com', u'www.example2.com'], |
- u'single': True, |
- u'singlehttp': u'24.27.78.152', |
- u'singlehttpport': 1728, |
- u'type': 2} |
- |
- { u'ignorelist': [], |
- u'pacurl': u'http://example.com/config.pac', |
- u'single': False, |
- u'type': 3} |
- |
- Raises: |
- pyauto_errors.JSONInterfaceError if the automation call returns an error. |
- """ |
- cmd_dict = { 'command': 'GetProxySettings' } |
- return self._GetResultFromJSONRequest(cmd_dict, windex=None) |
- |
- def _FindNamedNetwork(self, network_dict, name): |
- """Finds a network by name. |
- |
- Args: |
- network_dict: network settings as returned by GetNetworkInfo. |
- name: name of network we want to set proxy settings on. |
- |
- Returns: |
- A dictionary with service_path and network_type of the |
- named network, when given a dictionary with all system |
- network information as returned by GetNetworkInfo. |
- |
- See GetNetworkInfo for a description of the input dictionary. |
- |
- Samples: |
- { u'network_type': 'wifi_networks', |
- u'service_path': '/service/700'} |
- """ |
- for (key, value) in network_dict.iteritems(): |
- if isinstance(value, dict): |
- if 'name' in value: |
- if value['name'] == name: |
- network_info = {'service_path': key} |
- return network_info |
- else: |
- # if key is a dict but it doesnt have a 'name' entry, go deeper |
- network_info = self._FindNamedNetwork(value, name) |
- # if only service path set, set type from networking dictionary |
- if network_info != None and 'network_type' not in network_info: |
- network_info['network_type'] = value['network_type'] |
- return network_info |
- return None |
- |
- def _GetNamedNetworkInfo(self, network_name): |
- """Gets settings needed to enable shared proxies for the named network. |
- |
- Args: |
- network_name: name of network we want to set proxy settings on. |
- |
- Returns: |
- A dictionary with network_type and service_path. |
- Samples: |
- { u'network_type': '1', |
- u'service_path': '/service/0'} |
- |
- Raises: |
- AutomationCommandFail if network name isn't found. |
- """ |
- net = self.GetNetworkInfo() |
- if network_name == 'NAME_UNKNOWN': |
- if net.get('ethernet_available'): |
- service_path = net.get('connected_ethernet') |
- network_type = str(pyautolib.TYPE_ETHERNET) |
- elif net.get('wifi_available'): |
- service_path = net.get('connected_wifi') |
- network_type = str(pyautolib.TYPE_WIFI) |
- elif net.get('cellular_available'): |
- service_path = net.get('connected_cellular') |
- network_type = str(pyautolib.TYPE_CELLULAR) |
- else: |
- raise AutomationCommandFail('No network available.') |
- else: |
- named_network_info = self._FindNamedNetwork(net, network_name) |
- if named_network_info == None: |
- raise AutomationCommandFail('%s not found.' % network_name) |
- service_path = named_network_info['service_path'] |
- network_type = named_network_info['network_type'] |
- |
- if not network_type: |
- raise AutomationCommandFail('network type not found.') |
- if not service_path: |
- raise AutomationCommandFail('service path not found.') |
- network_info = {'network type': network_type, 'service path': service_path} |
- return network_info |
- |
- def SetProxySettingOnChromeOS(self, proxy_dict): |
- """Public wrapper around _SetProxySettingOnChromeOSCore, performs |
- state setup and error checking. |
- |
- Args: |
- proxy_dict: dictionary of proxy settings, valid entries of which are |
- what one would supply _SetProxySettingOnChromeOSCore |
- |
- Raises: |
- AutomationCommandFail if a necessary dictionary entries aren't found. |
- """ |
- url_path = proxy_dict.get('url_path') |
- proxy_url = proxy_dict.get('proxy_url') |
- port_path = proxy_dict.get('port_path') |
- proxy_port = proxy_dict.get('proxy_port') |
- |
- if proxy_url is not None: |
- if url_path is None: |
- raise AutomationCommandFail('url_path needed to set proxy_url.') |
- return |
- self.SetSharedProxies(True) |
- self.RefreshInternetDetails() |
- self._SetProxySettingOnChromeOSCore('type', self.PROXY_TYPE_MANUAL) |
- self._SetProxySettingOnChromeOSCore(url_path, proxy_url) |
- |
- if proxy_port is not None: |
- if port_path is None: |
- raise AutomationCommandFail('port_path needed to set proxy_port.') |
- return |
- self._SetProxySettingOnChromeOSCore(port_path, proxy_port) |
- |
def ResetProxySettingsOnChromeOS(self): |
"""Public wrapper around proxysettings teardown functions.""" |
self.SetSharedProxies(False) |
- self.RefreshInternetDetails() |
- self._SetProxySettingOnChromeOSCore('type', self.PROXY_TYPE_DIRECT) |
+ proxy_dict = { |
+ 'mode': 'direct' |
+ } |
+ self.SetProxySettingOnChromeOS(proxy_dict) |
- def _SetProxySettingOnChromeOSCore(self, key, value): |
- """Set a proxy setting. |
+ def SetProxySettingOnChromeOS(self, proxy_config): |
+ """Set the proxy config of the current network. |
Owner must be logged in for these to persist. |
If user is not logged in or is logged in as non-owner or guest, |
proxy settings do not persist across browser restarts or login/logout. |
Args: |
- key: string describing type of proxy preference. |
- value: value of proxy preference. |
- |
- Valid settings are: |
- 'type': int - Type of proxy. Should be one of: |
- PROXY_TYPE_DIRECT, PROXY_TYPE_MANUAL, PROXY_TYPE_PAC. |
- 'ignorelist': list - The list of hosts and domains to ignore. |
- |
- These settings set 'type' to PROXY_TYPE_MANUAL: |
- 'single': boolean - Whether to use the same proxy for all protocols. |
- |
- These settings set 'single' to True: |
- 'singlehttp': string - If single is true, the proxy address to use. |
- 'singlehttpport': int - If single is true, the proxy port to use. |
- |
- These settings set 'single' to False: |
- 'httpurl': string - HTTP proxy address. |
- 'httpport': int - HTTP proxy port. |
- 'httpsurl': string - Secure HTTP proxy address. |
- 'httpsport': int - Secure HTTP proxy port. |
- 'ftpurl': string - FTP proxy address. |
- 'ftpport': int - FTP proxy port. |
- 'socks': string - SOCKS host address. |
- 'socksport': int - SOCKS host port. |
- |
- This setting sets 'type' to PROXY_TYPE_PAC: |
- 'pacurl': string - Autoconfiguration URL. |
- |
- Examples: |
- # Sets direct internet connection, no proxy. |
- self.SetProxySettingOnChromeOS('type', self.PROXY_TYPE_DIRECT) |
- |
- # Sets manual proxy configuration, same proxy for all protocols. |
- self.SetProxySettingOnChromeOS('singlehttp', '24.27.78.152') |
- self.SetProxySettingOnChromeOS('singlehttpport', 1728) |
- self.SetProxySettingOnChromeOS('ignorelist', |
- ['www.example.com', 'example2.com']) |
- |
- # Sets automatic proxy configuration with the specified PAC url. |
- self.SetProxySettingOnChromeOS('pacurl', 'http://example.com/config.pac') |
- |
- # Sets httpproxy with specified url |
- self.SetProxySettingOnChromeOS('httpurl', 10.10.10) |
+ proxy_config: A dictionary following the format described in |
+ prefs/proxy_config_dictionary.h. |
Raises: |
pyauto_errors.JSONInterfaceError if the automation call returns an error. |
""" |
cmd_dict = { |
'command': 'SetProxySettings', |
- 'key': key, |
- 'value': value, |
+ 'proxy_config': json.dumps(proxy_config) |
} |
return self._GetResultFromJSONRequest(cmd_dict, windex=None) |
def SetSharedProxies(self, value): |
- """Allows shared proxies on the named network. |
+ """Allows proxies on the shared networks. |
Args: |
value: True/False to set and clear respectively. |
@@ -4968,22 +4787,6 @@ class PyUITest(pyautolib.PyUITestBase, unittest.TestCase): |
} |
return self._GetResultFromJSONRequest(cmd_dict, windex=None) |
- def RefreshInternetDetails(self, network_name='NAME_UNKNOWN'): |
- """Updates network information |
- |
- Args: |
- network_name: name of the network we want to refresh settings for. |
- |
- Raises: |
- pyauto_errors.JSONInterfaceError if the automation call returns an error. |
- """ |
- network_info = self._GetNamedNetworkInfo(network_name) |
- cmd_dict = { |
- 'command': 'RefreshInternetDetails', |
- 'service path': network_info.get('service path'), |
- } |
- return self._GetResultFromJSONRequest(cmd_dict, None) |
- |
def ForgetAllRememberedNetworks(self): |
"""Forgets all networks that the device has marked as remembered.""" |
for service in self.GetNetworkInfo()['remembered_wifi']: |