def setUp(self):
        self.plugin_finder = PassivePluginsFinder(None)

        self.yoast_seo_meta = Meta(
            key="plugins/wordpress-seo",
            name="Yoast SEO",
            url=
            "https://yoast.com/wordpress/plugins/seo/#utm_source=wpadmin&utm_medium="
            "plugin&utm_campaign=wpseoplugin")
        self.google_analytics_meta = Meta(
            key="plugins/google-analytics-for-wordpress",
            name="Google Analytics by MonsterInsights",
            url=
            "https://www.monsterinsights.com/pricing/#utm_source=wordpress&utm_medium"
            "=plugin&utm_campaign=wpgaplugin&utm_content=v504")
        self.postratings_meta = Meta(key="plugins/wp-postratings",
                                     name="WP-PostRatings")
        self.total_cache_meta = Meta(
            key="plugins/w3-total-cache",
            name="W3 Total Cache",
            url="http://www.w3-edge.com/wordpress-plugins/w3-total-cache/")
        self.plugin_finder.meta_list = MetaList(key="plugins",
                                                metas=[
                                                    self.yoast_seo_meta,
                                                    self.google_analytics_meta,
                                                    self.postratings_meta,
                                                    self.total_cache_meta
                                                ])
    def test_get_plugin_key_from_name_in_string(self):
        plugin_string0 = "BEGIN wp-parsely Plugin Version 1.10.2 "
        plugin_string1 = "This site uses the wp-captcha plugin."
        plugin_string2 = "No plugin name in this string"
        plugin_string3 = "This site uses the Google Analytics by MonsterInsights plugin"

        plugin0_meta = Meta(key="plugins/wp-parsely", name="Parse.ly")
        plugin1_meta = Meta(key="plugins/wp-captcha", name="WP Captcha")
        self.plugin_finder.meta_list = MetaList(
            key="plugins",
            metas=[plugin0_meta, plugin1_meta, self.google_analytics_meta])

        plugin0_key = self.plugin_finder._get_plugin_key_from_name_in_string(
            plugin_string0)
        plugin1_key = self.plugin_finder._get_plugin_key_from_name_in_string(
            plugin_string1)
        plugin2_key = self.plugin_finder._get_plugin_key_from_name_in_string(
            plugin_string2)
        plugin3_key = self.plugin_finder._get_plugin_key_from_name_in_string(
            plugin_string3)

        self.assertEqual(plugin0_key, plugin0_meta.key)
        self.assertEqual(plugin1_key, plugin1_meta.key)
        self.assertIsNone(plugin2_key)
        self.assertEqual(plugin3_key, self.google_analytics_meta.key)
    def dump_meta(self, key, export_path):
        meta_list = MetaList(key=key)
        for meta in self.storage.list_meta(key):
            meta_list.metas.append(meta)

        file_name = join(export_path, "vane2_%s_meta.json" % key)
        self._dump(file_name, meta_list, MetaListSchema())
    def test_find_plugin_in_string_find_plugin_from_path_in_comment(self):
        comment = "this is a comment with a plugin url: http://www.wpsite.com/wp-content/plugins/my-plugin/script.js"
        self.plugin_finder.meta_list = MetaList(
            key="plugins", metas=[Meta(key="plugins/my-plugin")])

        plugin_key, version = self.plugin_finder._find_plugin_in_string(
            comment).popitem()

        self.assertEqual(plugin_key, "plugins/my-plugin")
    def test_find_plugin_in_string_return_longest_match(self):
        self.plugin_finder.meta_list = MetaList(key="plugins")
        self.plugin_finder.meta_list.metas = [
            Meta(key="plugins/captcha"),
            Meta(key="plugins/wp-captcha")
        ]
        string = "This site uses the wp-captcha plugin."

        key, version = self.plugin_finder._find_plugin_in_string(
            string).popitem()

        self.assertEqual(key, "plugins/wp-captcha")
    def test_find_plugin_in_string_doesnt_return_words_containing_plugin_names(
            self):
        meta_list = MetaList(key="plugins",
                             metas=[
                                 Meta(key="plugins/nofollow"),
                                 Meta(key="plugins/recentcomments")
                             ])
        self.plugin_finder.set_plugins_meta_list(meta_list)
        string1 = "external nofollow"
        string2 = "recentcomments"

        self.assertIsNone(self.plugin_finder._find_plugin_in_string(string1))
        self.assertIsNone(self.plugin_finder._find_plugin_in_string(string2))
    def test_find_plugin_in_string_only_return_full_match(self):
        self.plugin_finder.meta_list = MetaList(key="plugins")
        self.plugin_finder.meta_list.metas = [
            Meta(key="plugins/recaptcha"),
            Meta(key="plugins/spam-captcha"),
            Meta(key="plugins/pluscaptcha"),
            Meta(key="plugins/wp-captcha"),
            Meta(key="plugins/typing-lag-fix-for-yoast-seo",
                 name="Typing Lag Fix for Yoast SEO")
        ]
        string0 = "This site uses the captcha plugin."
        string1 = "This site is optimized with the Yoast SEO plugin v4.0.2 - https://yoast.com/wordpress/plugins/seo/"

        self.assertIsNone(self.plugin_finder._find_plugin_in_string(string0))
        self.assertIsNone(self.plugin_finder._find_plugin_in_string(string1))
    def test_find_plugin_in_string_doesnt_find_name_that_are_part_of_larger_word(
            self):
        """Test that a word like 'secondary' in a comment doesn't match a plugin like 'econda'."""
        meta_list = MetaList(key="plugins",
                             metas=[
                                 Meta(key="plugins/econda"),
                                 Meta(key="plugins/nofollow"),
                                 Meta(key="plugins/recentcomments"),
                                 Meta(key="plugins/google")
                             ])
        self.plugin_finder.set_plugins_meta_list(meta_list)
        string0 = "secondary-toggle"
        string3 = "//fonts.googleapis.com/css"

        self.assertIsNone(self.plugin_finder._find_plugin_in_string(string0))
        self.assertIsNone(self.plugin_finder._find_plugin_in_string(string3))
    def test_find_plugin_in_string_return_plugin_key_with_key_in_meta_that_matches_string(
            self):
        string0 = "BEGIN wp-parsely Plugin Version 1.10.2 "
        string1 = "This site uses the wp-captcha plugin."
        string2 = "No plugin name in this string"

        self.plugin_finder.meta_list = MetaList(key="plugins")
        self.plugin_finder.meta_list.metas.append(
            Meta(key="plugins/wp-parsely", name="Parse.ly"))
        self.plugin_finder.meta_list.metas.append(
            Meta(key="plugins/wp-captcha", name="WP Captcha"))

        plugin_key0, version = self.plugin_finder._find_plugin_in_string(
            string0).popitem()
        plugin_key1, version = self.plugin_finder._find_plugin_in_string(
            string1).popitem()
        plugin_key2 = self.plugin_finder._find_plugin_in_string(string2)

        self.assertEqual(plugin_key0, "plugins/wp-parsely")
        self.assertEqual(plugin_key1, "plugins/wp-captcha")
        self.assertIsNone(plugin_key2)
Exemple #10
0
 def setUp(self):
     meta_list = MetaList(
         key="themes",
         metas=[Meta(key="themes/twenty11"),
                Meta(key="themes/kratos")])
     self.themes_finder = PassiveThemesFinder(meta_list)