def test_listMenu_should_check_if_download_path_is_set_to_decide_if_download_folder_is_visible(self):
        sys.argv = ["something", -1, "something_else"]
        list = ["true", "true", "true", "", "true"]
        sys.modules["__main__"].settings.getSetting.side_effect = lambda x: list.pop()
        navigation = BlipTVNavigation()
        navigation.categories = ({"path": "/root/my_first_level/my_second_level1", "feed": "downloads"}, {"path": "/root/my_first_level/my_second_level2", "feed": "downloads"})
        navigation.list = Mock()
        navigation.addListItem = Mock()

        navigation.listMenu({"path": "/root/my_first_level", "feed": "downloads"})

        navigation.addListItem.assert_called_with({'feed': 'downloads', 'path': '/root/my_first_level'}, {'feed': 'downloads', 'path': '/root/my_first_level/my_second_level1'})
    def test_listMenu_should_only_list_subfolders_to_a_path(self):
        sys.argv = ["something", -1, "something_else"]
        list = ["", "", "", ""]
        sys.modules["__main__"].settings.getSetting.side_effect = lambda x: list.pop()
        navigation = BlipTVNavigation()
        navigation.categories = ({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level"}, {"path": "/root/my_other_first_level"}, {"path": "/root/my_other_first_level/my_other_second_level"})
        navigation.list = Mock()
        navigation.addListItem = Mock()

        navigation.listMenu({"path": "/root/my_first_level"})

        navigation.addListItem.assert_called_with({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level"})
    def test_listMenu_should_use_visibility_from_settings_to_decide_if_items_are_displayed(self):
        sys.argv = ["something", -1, "something_else"]
        list = ["false", "true", "false", "true"]
        sys.modules["__main__"].settings.getSetting.side_effect = lambda x: list.pop()
        navigation = BlipTVNavigation()
        navigation.categories = ({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level1"}, {"path": "/root/my_first_level/my_second_level2"}, {"path": "/root/my_first_level/my_second_level3"})
        navigation.list = Mock()
        navigation.addListItem = Mock()

        navigation.listMenu({"path": "/root/my_first_level"})

        navigation.addListItem.assert_any_call({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level1"})
        navigation.addListItem.assert_any_call({"path": "/root/my_first_level"}, {"path": "/root/my_first_level/my_second_level3"})