From b30fdf88ca1b1f793404acba5564e44222f74304 Mon Sep 17 00:00:00 2001 From: benthecarman Date: Fri, 19 Feb 2021 12:09:55 -0600 Subject: [PATCH] Fix normalized string comparison (#2695) * Fix normalized string comparison * Add test --- .../scala/org/bitcoins/core/protocol/tlv/TLVTest.scala | 9 +++++++++ .../main/scala/org/bitcoins/core/protocol/tlv/TLV.scala | 2 ++ 2 files changed, 11 insertions(+) diff --git a/core-test/src/test/scala/org/bitcoins/core/protocol/tlv/TLVTest.scala b/core-test/src/test/scala/org/bitcoins/core/protocol/tlv/TLVTest.scala index 39719d6c50..601ce8f35b 100644 --- a/core-test/src/test/scala/org/bitcoins/core/protocol/tlv/TLVTest.scala +++ b/core-test/src/test/scala/org/bitcoins/core/protocol/tlv/TLVTest.scala @@ -5,6 +5,15 @@ import org.bitcoins.testkit.util.BitcoinSUnitTest class TLVTest extends BitcoinSUnitTest { + "NormalizedString" must "correctly compare" in { + val original = + "G�\u0006=ẁ7\u007F8�\u0001 �\u0001z �/�\u001F��\u0001\u0001��\u0001�d\u0012\u0001� �\u007F���\u0001�\u0001��9�\u0001\u007F��\u007F\u0001'��\u0001�\u001B���\u001F" + val normalized = + "G�\u0006=ẁ7\u007F8�\u0001 �\u0001z �/�\u001F��\u0001\u0001��\u0001�d\u0012\u0001� �\u007F���\u0001�\u0001��9�\u0001\u007F��\u007F\u0001'��\u0001�\u001B���\u001F" + + assert(NormalizedString(original) == NormalizedString(normalized)) + } + "TLV" must "have serialization symmetry" in { forAll(TLVGen.tlv) { tlv => assert(TLV(tlv.bytes) == tlv) diff --git a/core/src/main/scala/org/bitcoins/core/protocol/tlv/TLV.scala b/core/src/main/scala/org/bitcoins/core/protocol/tlv/TLV.scala index 81a664273f..782048431e 100644 --- a/core/src/main/scala/org/bitcoins/core/protocol/tlv/TLV.scala +++ b/core/src/main/scala/org/bitcoins/core/protocol/tlv/TLV.scala @@ -325,6 +325,8 @@ case class NormalizedString(private val str: String) extends NetworkElement { other match { case otherStr: String => normStr == otherStr + case otherNorm: NormalizedString => + normStr == otherNorm.normStr case _ => other.equals(str) } }