diff --git a/changedetectionio/tests/test_xpath_selector.py b/changedetectionio/tests/test_xpath_selector.py index 59abb41e..7ae565bb 100644 --- a/changedetectionio/tests/test_xpath_selector.py +++ b/changedetectionio/tests/test_xpath_selector.py @@ -270,3 +270,45 @@ def test_check_with_prefix_include_filters(client, live_server): assert b"Some text that will change" not in res.data #not in selector client.get(url_for("form_delete", uuid="all"), follow_redirects=True) +def test_various_rules(client, live_server): + # Just check these don't error + live_server_setup(live_server) + with open("test-datastore/endpoint-content.txt", "w") as f: + f.write(""" + + Some initial text
+

Which is across multiple lines

+
+ So let's see what happens.
+
Some text thats the same
+
Some text that will change
+ some linky + another some linky + + + """) + test_url = url_for('test_endpoint', _external=True) + res = client.post( + url_for("import_page"), + data={"urls": test_url}, + follow_redirects=True + ) + assert b"1 Imported" in res.data + wait_for_all_checks(client) + + + for r in ['//div', '//a', 'xpath://div', 'xpath://a']: + res = client.post( + url_for("edit_page", uuid="first"), + data={"include_filters": r, + "url": test_url, + "tags": "", + "headers": "", + 'fetch_backend': "html_requests"}, + follow_redirects=True + ) + assert b"Updated watch." in res.data + wait_for_all_checks(client) + + res = client.get(url_for("index")) + assert b'fetch-error' not in res.data, f"Should not see errors after '{r} filter"