Skip to content

Commit

Permalink
WebSocketExtension#equals matches sub-classes too
Browse files Browse the repository at this point in the history
Closes gh-26449
  • Loading branch information
rstoyanchev committed Jan 29, 2021
1 parent 51079a4 commit 698e74f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -103,7 +103,7 @@ public boolean equals(@Nullable Object other) {
if (this == other) {
return true;
}
if (other == null || getClass() != other.getClass()) {
if (other == null || !WebSocketExtension.class.isAssignableFrom(other.getClass())) {
return false;
}
WebSocketExtension otherExt = (WebSocketExtension) other;
Expand Down
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,8 +18,11 @@

import java.util.List;

import org.glassfish.tyrus.core.TyrusExtension;
import org.junit.jupiter.api.Test;

import org.springframework.web.socket.adapter.standard.StandardToWebSocketExtensionAdapter;

import static org.assertj.core.api.Assertions.assertThat;

/**
Expand All @@ -30,7 +33,9 @@ public class WebSocketExtensionTests {

@Test
public void parseHeaderSingle() {
List<WebSocketExtension> extensions = WebSocketExtension.parseExtensions("x-test-extension ; foo=bar ; bar=baz");
List<WebSocketExtension> extensions =
WebSocketExtension.parseExtensions("x-test-extension ; foo=bar ; bar=baz");

assertThat(extensions).hasSize(1);
WebSocketExtension extension = extensions.get(0);

Expand All @@ -42,9 +47,18 @@ public void parseHeaderSingle() {

@Test
public void parseHeaderMultiple() {
List<WebSocketExtension> extensions = WebSocketExtension.parseExtensions("x-foo-extension, x-bar-extension");
List<WebSocketExtension> extensions =
WebSocketExtension.parseExtensions("x-foo-extension, x-bar-extension");

assertThat(extensions.stream().map(WebSocketExtension::getName))
.containsExactly("x-foo-extension", "x-bar-extension");
}

@Test // gh-26449
public void equality() {
WebSocketExtension ext1 = new WebSocketExtension("myExtension");
WebSocketExtension ext2 = new StandardToWebSocketExtensionAdapter(new TyrusExtension("myExtension"));

assertThat(ext1).isEqualTo(ext2);
}
}

0 comments on commit 698e74f

Please sign in to comment.