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

import dbus

from autotest_lib.client.bin import test
from autotest_lib.client.common_lib import error


SERVICE_NAME = 'org.chromium.WebServer'
MANAGER_INTERFACE = 'org.chromium.WebServer.Manager'
MANAGER_OBJECT_PATH = '/org/chromium/WebServer/Manager'

EXPECTED_PING_RESPONSE = 'Web Server is running'

class webservd_BasicDBusAPI(test.test):
    """Check that basic webservd daemon DBus APIs are functional."""
    version = 1

    def run_once(self):
        """Test entry point."""
        bus = dbus.SystemBus()
        manager_proxy = dbus.Interface(
                bus.get_object(SERVICE_NAME, MANAGER_OBJECT_PATH),
                dbus_interface=MANAGER_INTERFACE)
        ping_response = manager_proxy.Ping()
        if EXPECTED_PING_RESPONSE != ping_response:
            raise error.TestFail(
                    'Expected Manager.Ping to return %s but got %s instead.' %
                    (EXPECTED_PING_RESPONSE, ping_response))