46 lines
2.0 KiB
C++
46 lines
2.0 KiB
C++
#include "validation.h"
|
|
#include <gtest/gtest.h>
|
|
|
|
using namespace radiantwave::validation;
|
|
|
|
TEST(ValidationTest, ValidEmails) {
|
|
EXPECT_TRUE(isValidEmail("user@example.com"));
|
|
EXPECT_TRUE(isValidEmail("first.last@example.co.uk"));
|
|
EXPECT_TRUE(isValidEmail("user+tag@example.com"));
|
|
EXPECT_TRUE(isValidEmail("UPPER.CASE@EXAMPLE.ORG"));
|
|
EXPECT_TRUE(isValidEmail("a@b.co"));
|
|
}
|
|
|
|
TEST(ValidationTest, InvalidEmails) {
|
|
EXPECT_FALSE(isValidEmail(""));
|
|
EXPECT_FALSE(isValidEmail("ab"));
|
|
EXPECT_FALSE(isValidEmail("user@"));
|
|
EXPECT_FALSE(isValidEmail("@example.com"));
|
|
EXPECT_FALSE(isValidEmail("user@@example.com"));
|
|
EXPECT_FALSE(isValidEmail("user@example")); // no dot in domain
|
|
EXPECT_FALSE(isValidEmail("user name@example.com")); // whitespace
|
|
EXPECT_FALSE(isValidEmail("user@.example.com")); // empty label
|
|
EXPECT_FALSE(isValidEmail("user@example..com")); // empty label
|
|
EXPECT_FALSE(isValidEmail(".user@example.com")); // leading dot in local
|
|
EXPECT_FALSE(isValidEmail("user.@example.com")); // trailing dot in local
|
|
EXPECT_FALSE(isValidEmail(std::string(255, 'a') + "@example.com"));
|
|
}
|
|
|
|
TEST(ValidationTest, SanitizeLicenseKey) {
|
|
EXPECT_EQ(sanitizeLicenseKey(""), "");
|
|
EXPECT_EQ(sanitizeLicenseKey("abcd-efgh-1234-5678"), "ABCDEFGH12345678");
|
|
EXPECT_EQ(sanitizeLicenseKey("ab cd ef gh ij kl"), "ABCDEFGHIJKL"); // whitespace stripped
|
|
EXPECT_EQ(sanitizeLicenseKey("AbC1!!dEf"), "ABC1DEF"); // symbols stripped
|
|
EXPECT_EQ(sanitizeLicenseKey("12345678901234567890"), "1234567890123456"); // capped at 16
|
|
}
|
|
|
|
TEST(ValidationTest, FormatLicenseKey) {
|
|
EXPECT_EQ(formatLicenseKey(""), "");
|
|
EXPECT_EQ(formatLicenseKey("ABCD"), "ABCD");
|
|
EXPECT_EQ(formatLicenseKey("ABCDEFGH"), "ABCD-EFGH");
|
|
EXPECT_EQ(formatLicenseKey("ABCDEFGH12345678"), "ABCD-EFGH-1234-5678");
|
|
// Grouping applies to whatever is passed; length capping is the
|
|
// sanitizer's responsibility.
|
|
EXPECT_EQ(formatLicenseKey("ABCDEFGH123456789"), "ABCD-EFGH-1234-5678-9");
|
|
}
|