chromium/ios/build/bots/scripts/plugin/usbmuxd_proxy_test.py

# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import unittest
import os
import subprocess
import sys
import mock

# if the current directory is in scripts (pwd), then we need to
# add plugin in order to import from that directory
if os.path.split(os.path.dirname(__file__))[1] != 'plugin':
  sys.path.append(
      os.path.join(os.path.abspath(os.path.dirname(__file__)), 'plugin'))
from plugin_constants import PLUGIN_SERVICE_ADDRESS, PLUGIN_PROXY_SERVICE_PORT, REMOTE_PLUGIN_PROXY_PORT
from usbmuxd_proxy import PluginServiceProxyWrapper


class PluginServiceProxyWrapperTest(unittest.TestCase):

  def setUp(self):
    self.plugin_service_proxy = PluginServiceProxyWrapper(
        PLUGIN_SERVICE_ADDRESS, PLUGIN_PROXY_SERVICE_PORT,
        REMOTE_PLUGIN_PROXY_PORT)

  def test_start_iproxy(self):
    with mock.patch.object(subprocess, 'Popen') as mock_popen:
      mock_popen.return_value.returncode = 0
      self.plugin_service_proxy.start_iproxy()
      mock_popen.assert_called_once_with(
          ['iproxy', PLUGIN_PROXY_SERVICE_PORT, REMOTE_PLUGIN_PROXY_PORT])


if __name__ == '__main__':
  unittest.main()