Commit 5f98aa3e authored by Tatiana Buldina's avatar Tatiana Buldina Committed by Commit Bot

[ChromeDriver] Add test to check IPv4 and IPv6

Bug: chromedriver:2543
Change-Id: I929e5a37607b596d169534dff87c2e5cbb817538
Reviewed-on: https://chromium-review.googlesource.com/1252983Reviewed-by: default avatarJohn Chen <johnchen@chromium.org>
Commit-Queue: Tatiana Buldina <buldina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595502}
parent 79a0906a
......@@ -4,7 +4,7 @@
import httplib
import json
from urlparse import urlparse
class _Method(object):
GET = 'GET'
......@@ -182,8 +182,9 @@ class Command(object):
class CommandExecutor(object):
def __init__(self, server_url):
self._server_url = server_url
port = int(server_url.split(':')[2].split('/')[0])
self._http_client = httplib.HTTPConnection('127.0.0.1', port, timeout=30)
parsed_url = urlparse(server_url)
self._http_client = httplib.HTTPConnection(
parsed_url.hostname, parsed_url.port, timeout=30)
def Execute(self, command, params):
url_parts = command[1].split('/')
......
......@@ -44,6 +44,7 @@ class Server(object):
self._process = subprocess.Popen(chromedriver_args)
self._url = 'http://127.0.0.1:%d' % port
self._port = port
if self._process is None:
raise RuntimeError('ChromeDriver server cannot be started')
......@@ -67,6 +68,9 @@ class Server(object):
def GetUrl(self):
return self._url
def GetPort(self):
return self._port
def IsRunning(self):
"""Returns whether the server is up and running."""
try:
......
......@@ -18,6 +18,7 @@ import optparse
import os
import re
import shutil
import socket
import subprocess
import sys
import tempfile
......@@ -28,6 +29,7 @@ import urllib
import urllib2
import uuid
_THIS_DIR = os.path.abspath(os.path.dirname(__file__))
_PARENT_DIR = os.path.join(_THIS_DIR, os.pardir)
_CLIENT_DIR = os.path.join(_PARENT_DIR, "client")
......@@ -2964,6 +2966,22 @@ class HeadlessInvalidCertificateTest(ChromeDriverBaseTest):
self._driver.FindElement('id', 'link')
class SupportIPv4AndIPv6(ChromeDriverBaseTest):
def testSupportIPv4AndIPv6(self):
has_ipv4 = False
has_ipv6 = False
for info in socket.getaddrinfo('localhost', 0):
if info[0] == socket.AF_INET:
has_ipv4 = True
if info[0] == socket.AF_INET6:
has_ipv6 = True
if has_ipv4:
self.CreateDriver("http://127.0.0.1:" +
str(chromedriver_server.GetPort()))
if has_ipv6:
self.CreateDriver('http://[::1]:' +
str(chromedriver_server.GetPort()))
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option(
......@@ -3024,6 +3042,7 @@ if __name__ == '__main__':
options.android_package not in _ANDROID_NEGATIVE_FILTER):
parser.error('Invalid --android-package')
global chromedriver_server
chromedriver_server = server.Server(_CHROMEDRIVER_BINARY, options.log_path,
replayable=options.replayable)
global _CHROMEDRIVER_SERVER_URL
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment