1f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)// found in the LICENSE file.
4f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
5f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#ifndef NavigatorContentUtilsClientMock_h
6f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#define NavigatorContentUtilsClientMock_h
7f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
8f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#include "modules/navigatorcontentutils/NavigatorContentUtilsClient.h"
9f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#include "wtf/HashSet.h"
10f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#include "wtf/text/WTFString.h"
11f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
12c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
13f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
14197021e6b966cfb06891637935ef33fff06433d1Ben Murdochclass KURL;
15197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch
16f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)// Provides a mock object for the navigatorcontentutils client.
17f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)class NavigatorContentUtilsClientMock : public NavigatorContentUtilsClient {
18f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)public:
19f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    NavigatorContentUtilsClientMock() { }
20f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    virtual ~NavigatorContentUtilsClientMock() { }
21f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
227242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    virtual void registerProtocolHandler(const String& scheme, const KURL&, const String& title);
23f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    virtual CustomHandlersState isProtocolHandlerRegistered(const String& scheme, const KURL&);
257242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    virtual void unregisterProtocolHandler(const String& scheme, const KURL&);
26f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
27f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)private:
28f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    typedef struct {
29f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)        String scheme;
30e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)        KURL url;
31f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)        String title;
32f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    } ProtocolInfo;
33f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
34f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    typedef HashMap<String, ProtocolInfo> RegisteredProtocolMap;
35f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)    RegisteredProtocolMap m_protocolMap;
36f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)};
37f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
38e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)} // namespace blink
39f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)
40f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles)#endif // NavigatorContentUtilsClientMock_h
41