15.1.944. tablet_qt/tests/auto/qobjects/urlvalidator/testurlvalidator.cpp

/*
    Copyright (C) 2012, University of Cambridge, Department of Psychiatry.
    Created by Rudolf Cardinal (rnc1001@cam.ac.uk).

    This file is part of CamCOPS.

    CamCOPS is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    CamCOPS is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.
*/

#include <QtTest/QtTest>

#include "qobjects/urlvalidator.h"

class TestUrlValidator : public QObject
{
    Q_OBJECT

private slots:
    void testInvalidUrlReturnsIntermediate();
    void testInvalidSchemeReturnsIntermediate();
    void testMissingHostReturnsIntermediate();
    void testValidUrlReturnsAcceptable();
};

void TestUrlValidator::testInvalidUrlReturnsIntermediate()
{
    auto validator = new UrlValidator();

    // Should fail QUrl::isValid()
    QString input("");
    int pos = 0;
    QCOMPARE(validator->validate(input, pos), QValidator::Intermediate);
}

void TestUrlValidator::testInvalidSchemeReturnsIntermediate()
{
    auto validator = new UrlValidator();

    QString input("ftp://user@example.com/foo/bar.txt");
    int pos = 0;
    QCOMPARE(validator->validate(input, pos), QValidator::Intermediate);
}

void TestUrlValidator::testMissingHostReturnsIntermediate()
{
    auto validator = new UrlValidator();

    QString input("https://user@/foo/");
    int pos = 0;
    QCOMPARE(validator->validate(input, pos), QValidator::Intermediate);
}

void TestUrlValidator::testValidUrlReturnsAcceptable()
{
    auto validator = new UrlValidator();

    QString input("https://example.org/");
    int pos = 0;
    QCOMPARE(validator->validate(input, pos), QValidator::Acceptable);
}

QTEST_MAIN(TestUrlValidator)

#include "testurlvalidator.moc"