blob: 27d4314b303922ad207edd8fd6a65e1d81d4015f [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package androidx.test.espresso.flutter.matcher;
import static com.google.common.base.Preconditions.checkNotNull;
import androidx.test.espresso.flutter.api.WidgetMatcher;
import androidx.test.espresso.flutter.model.WidgetInfo;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import javax.annotation.Nonnull;
import org.hamcrest.Description;
/** A matcher that matches a Flutter widget with a given tooltip. */
public final class WithTooltipMatcher extends WidgetMatcher {
@Expose
@SerializedName("text")
private final String tooltip;
/**
* Constructs the matcher with the given {@code tooltip} to be matched with.
*
* @param tooltip the tooltip to be matched with.
*/
public WithTooltipMatcher(@Nonnull String tooltip) {
super("ByTooltipMessage");
this.tooltip = checkNotNull(tooltip);
}
/** Returns the tooltip string that shall be matched for the widget. */
public String getTooltip() {
return tooltip;
}
@Override
public String toString() {
return "with tooltip: " + tooltip;
}
@Override
protected boolean matchesSafely(WidgetInfo widget) {
return tooltip.equals(widget.getTooltip());
}
@Override
public void describeTo(Description description) {
description.appendText("with tooltip: ").appendText(tooltip);
}
}