File: common_script_mock.h

package info (click to toggle)
gerbera 2.4.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,412 kB
  • sloc: cpp: 44,738; javascript: 13,430; xml: 5,730; ansic: 2,692; sh: 1,555; sql: 237; python: 191; makefile: 13
file content (76 lines) | stat: -rw-r--r-- 3,704 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*GRB*
    Gerbera - https://gerbera.io/

    common_script_mock.h - this file is part of Gerbera.

    Copyright (C) 2016-2025 Gerbera Contributors

    Gerbera is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License version 2
    as published by the Free Software Foundation.

    Gerbera is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Gerbera.  If not, see <http://www.gnu.org/licenses/>.

    $Id$
*/

#ifndef GERBERA_COMMON_SCRIPT_MOCK_H
#define GERBERA_COMMON_SCRIPT_MOCK_H

#ifdef HAVE_JS

#include <duk_config.h>
#include <gmock/gmock.h>

// The interface used to mock the `common.js` script functions and other global functions.
// When testing scripts this mock allows for tracking of script calls and inputs.
// Each method is a global function used in the script
// Expectations can be decided by each test for the given scenario.
class CommonScriptInterface {
public:
    virtual ~CommonScriptInterface() = default;
    virtual duk_ret_t getPlaylistType(std::string type) = 0;
    virtual duk_ret_t print(std::string text) = 0;
    virtual duk_ret_t print2(std::string mode, std::string text) = 0;
    virtual duk_ret_t addContainerTree(std::vector<std::string> tree) = 0;
    virtual duk_ret_t createContainerChain(std::vector<std::string> chain) = 0;
    virtual duk_ret_t getLastPath(std::string path) = 0;
    virtual duk_ret_t getLastPath2(std::string path, int length) = 0;
    virtual duk_ret_t readln(std::string line) = 0;
    virtual duk_ret_t readXml(std::string line) = 0;
    virtual duk_ret_t addCdsObject(std::map<std::string, std::string> item, std::string containerChain, std::string objectType) = 0;
    virtual duk_ret_t updateCdsObject(std::map<std::string, std::string> result) = 0;
    virtual duk_ret_t copyObject(bool isObject) = 0;
    virtual duk_ret_t getCdsObject(std::string location) = 0;
    virtual duk_ret_t getYear(std::string year) = 0;
    virtual duk_ret_t getRootPath(std::string objScriptPath, std::string location) = 0;
    virtual duk_ret_t abcBox(std::string inputValue, int boxType, std::string divChar) = 0;
};

class CommonScriptMock : public CommonScriptInterface {
public:
    MOCK_METHOD1(getPlaylistType, duk_ret_t(std::string type));
    MOCK_METHOD1(print, duk_ret_t(std::string text));
    MOCK_METHOD2(print2, duk_ret_t(std::string mode, std::string text));
    MOCK_METHOD1(addContainerTree, duk_ret_t(std::vector<std::string> tree));
    MOCK_METHOD1(createContainerChain, duk_ret_t(std::vector<std::string> chain));
    MOCK_METHOD1(getLastPath, duk_ret_t(std::string path));
    MOCK_METHOD2(getLastPath2, duk_ret_t(std::string path, int length));
    MOCK_METHOD1(readln, duk_ret_t(std::string line));
    MOCK_METHOD1(updateCdsObject, duk_ret_t(std::map<std::string, std::string> result));
    MOCK_METHOD1(readXml, duk_ret_t(std::string line));
    MOCK_METHOD3(addCdsObject, duk_ret_t(std::map<std::string, std::string> item, std::string containerChain, std::string objectType));
    MOCK_METHOD1(copyObject, duk_ret_t(bool isObject));
    MOCK_METHOD1(getCdsObject, duk_ret_t(std::string location));
    MOCK_METHOD1(getYear, duk_ret_t(std::string year));
    MOCK_METHOD2(getRootPath, duk_ret_t(std::string objScriptPath, std::string location));
    MOCK_METHOD3(abcBox, duk_ret_t(std::string inputValue, int boxType, std::string divChar));
};
#endif //HAVE_JS
#endif //GERBERA_COMMON_SCRIPT_MOCK_H