Comparison

tests/test_core_modulemanager.lua @ 1961:3652ef68c361

tests: Add tests for new modulemanager load_modules_for_host code
author Matthew Wild <mwild1@gmail.com>
date Fri, 16 Oct 2009 22:13:54 +0100
child 2923:b7049746bd29
comparison
equal deleted inserted replaced
1960:1e674dae31ae 1961:3652ef68c361
1 -- Prosody IM
2 -- Copyright (C) 2008-2009 Matthew Wild
3 -- Copyright (C) 2008-2009 Waqas Hussain
4 --
5 -- This project is MIT/X11 licensed. Please see the
6 -- COPYING file in the source package for more information.
7 --
8
9 local config = require "core.configmanager";
10 local helpers = require "util.helpers";
11 local set = require "util.set";
12
13 function load_modules_for_host(load_modules_for_host, mm)
14 local test_num = 0;
15 local function test_load(global_modules_enabled, global_modules_disabled, host_modules_enabled, host_modules_disabled, expected_modules)
16 test_num = test_num + 1;
17 -- Prepare
18 hosts = { ["example.com"] = {} };
19 config.set("*", "core", "modules_enabled", global_modules_enabled);
20 config.set("*", "core", "modules_disabled", global_modules_disabled);
21 config.set("example.com", "core", "modules_enabled", host_modules_enabled);
22 config.set("example.com", "core", "modules_disabled", host_modules_disabled);
23
24 expected_modules = set.new(expected_modules);
25 expected_modules:add_list(helpers.get_upvalue(load_modules_for_host, "autoload_modules"));
26
27 local loaded_modules = set.new();
28 function mm.load(host, module)
29 assert_equal(host, "example.com", test_num..": Host isn't example.com but "..tostring(host));
30 assert_equal(expected_modules:contains(module), true, test_num..": Loading unexpected module '"..tostring(module).."'");
31 loaded_modules:add(module);
32 end
33 load_modules_for_host("example.com");
34 assert_equal((expected_modules - loaded_modules):empty(), true, test_num..": Not all modules loaded: "..tostring(expected_modules - loaded_modules));
35 end
36
37 test_load({ "one", "two", "three" }, nil, nil, nil, { "one", "two", "three" });
38 test_load({ "one", "two", "three" }, {}, nil, nil, { "one", "two", "three" });
39 test_load({ "one", "two", "three" }, { "two" }, nil, nil, { "one", "three" });
40 test_load({ "one", "two", "three" }, { "three" }, nil, nil, { "one", "two" });
41 test_load({ "one", "two", "three" }, nil, nil, { "three" }, { "one", "two" });
42 test_load({ "one", "two", "three" }, nil, { "three" }, { "three" }, { "one", "two", "three" });
43
44 test_load({ "one", "two" }, nil, { "three" }, nil, { "one", "two", "three" });
45 test_load({ "one", "two", "three" }, nil, { "three" }, nil, { "one", "two", "three" });
46 test_load({ "one", "two", "three" }, { "three" }, { "three" }, nil, { "one", "two", "three" });
47 test_load({ "one", "two" }, { "three" }, { "three" }, nil, { "one", "two", "three" });
48 end