TEST_F(HTMLFormControlElementTest, customValidationMessageTextDirection)
{
    document().documentElement()->setInnerHTML("<body><input required id=input></body>", ASSERT_NO_EXCEPTION);
    document().view()->updateLayoutAndStyleIfNeededRecursive();

    HTMLInputElement* input = toHTMLInputElement(document().getElementById("input"));
    input->setCustomValidity(String::fromUTF8("\xD8\xB9\xD8\xB1\xD8\xA8\xD9\x89"));
    input->setAttribute(HTMLNames::titleAttr, AtomicString::fromUTF8("\xD8\xB9\xD8\xB1\xD8\xA8\xD9\x89"));

    String message = input->validationMessage().stripWhiteSpace();
    String subMessage = String();
    TextDirection messageDir = RTL;
    TextDirection subMessageDir = LTR;

    input->findCustomValidationMessageTextDirection(message, messageDir, subMessage, subMessageDir);
    EXPECT_EQ(RTL, messageDir);
    EXPECT_EQ(LTR, subMessageDir);

    input->layoutObject()->style()->setDirection(RTL);
    input->findCustomValidationMessageTextDirection(message, messageDir, subMessage, subMessageDir);
    EXPECT_EQ(RTL, messageDir);
    EXPECT_EQ(RTL, subMessageDir);

    input->setCustomValidity(String::fromUTF8("Main message."));
    message = input->validationMessage().stripWhiteSpace();
    input->findCustomValidationMessageTextDirection(message, messageDir, subMessage, subMessageDir);
    EXPECT_EQ(LTR, messageDir);
    EXPECT_EQ(RTL, subMessageDir);
}