This module contains testcases for its parent module, Existsmod.
See also
-- <nowiki>
local existsmod = require("Dev:Existsmod").module_exists
local ScribuntoUnit = require("Module:ScribuntoUnit")
local suite = ScribuntoUnit:new()
function suite:test_no_prefix()
self:assertTrue(existsmod("I18n", true, false))
self:assertFalse(existsmod("!I18n", true, false))
end
function suite:test_module_prefix()
self:assertTrue(existsmod("Module:I18n", true, false))
self:assertFalse(existsmod("Module:!I18n", true, false))
end
function suite:test_dev_prefix()
self:assertTrue(existsmod("Dev:I18n", true, false))
self:assertFalse(existsmod("Dev:!I18n", true, false))
end
function suite:test_ifexist_parity()
self:assertSameResult("{{#ifexist:}}", "{{#invoke:Existsmod|main}}")
self:assertSameResult("{{#ifexist:||missing}}", "{{#invoke:Existsmod|main|||missing}}")
self:assertSameResult("{{#ifexist:|found}}", "{{#invoke:Existsmod|main||found}}")
self:assertSameResult("{{#ifexist:|found|missing}}", "{{#invoke:Existsmod|main||found|missing}}")
self:assertSameResult("{{#ifexist:Module:I18n}}", "{{#invoke:Existsmod|main|Module:I18n}}")
self:assertSameResult("{{#ifexist:Module:I18n||missing}}", "{{#invoke:Existsmod|main|Module:I18n||missing}}")
self:assertSameResult("{{#ifexist:Module:I18n|found}}", "{{#invoke:Existsmod|main|Module:I18n|found}}")
self:assertSameResult("{{#ifexist:Module:I18n|found|missing}}", "{{#invoke:Existsmod|main|Module:I18n|found|missing}}")
-- Generated by {{#ifexist:Module:!I18n}}
self:assertSameResult("", "{{#invoke:Existsmod|main|Module:!I18n}}")
-- Generated by {{#ifexist:Module:!I18n||missing}}
self:assertSameResult("missing", "{{#invoke:Existsmod|main|Module:!I18n||missing}}")
-- Generated by {{#ifexist:Module:!I18n|found}}
self:assertSameResult("", "{{#invoke:Existsmod|main|Module:!I18n|found}}")
-- Generated by {{#ifexist:Module:!I18n|found|missing}}
self:assertSameResult("missing", "{{#invoke:Existsmod|main|Module:!I18n|found|missing}}")
end
function suite:test_path_normalization()
self:assertTrue(existsmod("i18n", true, false))
self:assertFalse(existsmod("i18N", true, false))
self:assertTrue(existsmod("I18n", true, false))
self:assertTrue(existsmod("module:i18n", true, false))
self:assertFalse(existsmod("module:i18N", true, false))
self:assertTrue(existsmod("module:I18n", true, false))
self:assertTrue(existsmod("modulE:i18n", true, false))
self:assertTrue(existsmod("Module:i18n", true, false))
self:assertTrue(existsmod("dev:i18n", true, false))
self:assertFalse(existsmod("dev:i18N", true, false))
self:assertTrue(existsmod("dev:I18n", true, false))
self:assertTrue(existsmod("deV:i18n", true, false))
self:assertTrue(existsmod("Dev:i18n", true, false))
end
function suite:test_spaces_in_name()
self:assertTrue(existsmod("User error", true, false))
end
function suite:test_module_is_redirect()
self:assertTrue(existsmod("Existsmod/redirect test", true, false))
end
function suite:test_module_is_subpage()
self:assertTrue(existsmod("Sandbox/DarthKitty", true, false))
end
return suite