<reponame>pbarcio/changedetection.io_barcio
from flask import url_for

def test_check_access_control(app, client):
    # Still doesnt work, but this is closer.
    return
    with app.test_client() as c:

        # Check we dont have any password protection enabled yet.
        res = c.get(url_for("settings_page"))
        assert b"Remove password" not in res.data

        # Enable password check.
        res = c.post(
            url_for("settings_page"),
            data={"password": "<PASSWORD>"},
            follow_redirects=True
        )
        assert b"Password protection enabled." in res.data
        assert b"LOG OUT" not in res.data
        print ("SESSION:", res.session)
        # Check we hit the login

        res = c.get(url_for("settings_page"), follow_redirects=True)
        res = c.get(url_for("login"), follow_redirects=True)

        assert b"Login" in res.data

        print ("DEBUG >>>>>",res.data)
        # Menu should not be available yet
        assert b"SETTINGS" not in res.data
        assert b"BACKUP" not in res.data
        assert b"IMPORT" not in res.data



        #<EMAIL> is actually hardcoded for now, we only use a single password
        res = c.post(
            url_for("login"),
            data={"password": "<PASSWORD>", "email": "<EMAIL>"},
            follow_redirects=True
        )

        assert b"LOG OUT" in res.data
        res = c.get(url_for("settings_page"))

        # Menu should be available now
        assert b"SETTINGS" in res.data
        assert b"BACKUP" in res.data
        assert b"IMPORT" in res.data

        assert b"LOG OUT" in res.data

        # Now remove the password so other tests function, @todo this should happen before each test automatically

        c.get(url_for("settings_page", removepassword="true"))
        c.get(url_for("import_page"))
        assert b"LOG OUT" not in res.data


from flask import url_for

def test_check_access_control(app, client):
    # Still doesnt work, but this is closer.
    return
    with app.test_client() as c:

        # Check we dont have any password protection enabled yet.
        res = c.get(url_for("settings_page"))
        assert b"Remove password" not in res.data

        # Enable password check.
        res = c.post(
            url_for("settings_page"),
            data={"password": "<PASSWORD>"},
            follow_redirects=True
        )
        assert b"Password protection enabled." in res.data
        assert b"LOG OUT" not in res.data
        print ("SESSION:", res.session)
        # Check we hit the login

        res = c.get(url_for("settings_page"), follow_redirects=True)
        res = c.get(url_for("login"), follow_redirects=True)

        assert b"Login" in res.data

        print ("DEBUG >>>>>",res.data)
        # Menu should not be available yet
        assert b"SETTINGS" not in res.data
        assert b"BACKUP" not in res.data
        assert b"IMPORT" not in res.data



        #<EMAIL> is actually hardcoded for now, we only use a single password
        res = c.post(
            url_for("login"),
            data={"password": "<PASSWORD>", "email": "<EMAIL>"},
            follow_redirects=True
        )

        assert b"LOG OUT" in res.data
        res = c.get(url_for("settings_page"))

        # Menu should be available now
        assert b"SETTINGS" in res.data
        assert b"BACKUP" in res.data
        assert b"IMPORT" in res.data

        assert b"LOG OUT" in res.data

        # Now remove the password so other tests function, @todo this should happen before each test automatically

        c.get(url_for("settings_page", removepassword="true"))
        c.get(url_for("import_page"))
        assert b"LOG OUT" not in res.data
# Still doesnt work, but this is closer. # Check we dont have any password protection enabled yet. # Enable password check. # Check we hit the login # Menu should not be available yet #<EMAIL> is actually hardcoded for now, we only use a single password # Menu should be available now # Now remove the password so other tests function, @todo this should happen before each test automatically