All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.code.play.selenium.step.WaitForNotEqualsStep Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2010-2016 Grzegorz Slowikowski
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.code.play.selenium.step;

import com.google.code.play.selenium.Timeout;

public class WaitForNotEqualsStep
    extends AbstractTimedSeleniumStep
{

    private StringSeleniumCommand innerCommand;

    private String expected;

    public WaitForNotEqualsStep( StringSeleniumCommand innerCommand, String expected, Timeout timeout )
    {
        super( timeout );
        this.innerCommand = innerCommand;
        this.expected = expected;
    }

    protected void doExecute()
        throws Exception
    {
        long endTimeMillis = System.currentTimeMillis() + getTimeoutAsInt();

        String xexpected = innerCommand.storedVars.fillValues( expected );
        xexpected = MultiLineHelper.brToNewLine( xexpected );

        String innerCommandResult = innerCommand.getString();
        boolean success = EqualsHelper.seleniumNotEquals( xexpected, innerCommandResult );
        while ( !success && System.currentTimeMillis() < endTimeMillis )
        {
            Thread.sleep( 10L );

            innerCommandResult = innerCommand.getString();
            success = EqualsHelper.seleniumNotEquals( xexpected, innerCommandResult );
        }
        if ( !success )
        {
            String assertMessage = "Actual value \"" + innerCommandResult + "\" did match \"" + xexpected + "\"";
            throwTimeoutException( assertMessage );
        }
    }

    public String toString()
    {
        String cmd = innerCommand.command.substring( "get".length() );

        StringBuffer buf = new StringBuffer();
        buf.append( "waitForNot" ).append( cmd ).append( "(" );
        if ( !"".equals( innerCommand.param1 ) )
        {
            buf.append( "'" ).append( innerCommand.param1 ).append( "', " );
        }
        buf.append( "'" ).append( expected ).append( "')" );
        return buf.toString();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy