diff --git a/SignalServiceKit/tests/Messages/OWSLinkPreviewTest.swift b/SignalServiceKit/tests/Messages/OWSLinkPreviewTest.swift index 41ec45fe2..79d93e0d0 100644 --- a/SignalServiceKit/tests/Messages/OWSLinkPreviewTest.swift +++ b/SignalServiceKit/tests/Messages/OWSLinkPreviewTest.swift @@ -6,6 +6,11 @@ import Foundation @testable import SignalServiceKit import XCTest +func XCTAssertMatch(expectedPattern: String, actualText: String, file: StaticString = #file, line: UInt = #line) { + let regex = try! NSRegularExpression(pattern: expectedPattern, options: []) + XCTAssert(regex.hasMatch(input: actualText), "\(actualText) did not match pattern \(expectedPattern)", file: file, line: line) +} + class OWSLinkPreviewTest: SSKBaseTestSwift { override func setUp() { @@ -382,7 +387,13 @@ class OWSLinkPreviewTest: SSKBaseTestSwift { XCTAssertNotNil(content) XCTAssertEqual(content.title, "Walter \"MFPallytime\" on Instagram: “Lol gg”") - XCTAssertEqual(content.imageUrl, "https://scontent-mia3-2.cdninstagram.com/vp/9035a7d6b32e6f840856661e4a11e3cf/5CFC285B/t51.2885-15/e35/47690175_2275988962411653_1145978227188801192_n.jpg?_nc_ht=scontent-mia3-2.cdninstagram.com") + // Actual URL can change based on network response + // https://scontent-mia3-2.cdninstagram.com/vp/9035a7d6b32e6f840856661e4a11e3cf/5CFC285B/t51.2885-15/e35/47690175_2275988962411653_1145978227188801192_n.jpg?_nc_ht=scontent-mia3-2.cdninstagram.com + // It seems like some parts of the URL are stable, so we can pattern match, but if this continues to be brittle we may choose + // to remove it or stub the network response + XCTAssertMatch(expectedPattern: "^https://.*.cdninstagram.com/.*/47690175_2275988962411653_1145978227188801192_n.jpg\\?.*$", + actualText: content.imageUrl!) +// XCTAssertEqual(content.imageUrl, "https://scontent-mia3-2.cdninstagram.com/vp/9035a7d6b32e6f840856661e4a11e3cf/5CFC285B/t51.2885-15/e35/47690175_2275988962411653_1145978227188801192_n.jpg?_nc_ht=scontent-mia3-2.cdninstagram.com") expectation.fulfill() }.catch { (error) in @@ -403,7 +414,12 @@ class OWSLinkPreviewTest: SSKBaseTestSwift { XCTAssertNotNil(content) XCTAssertEqual(content.title, "Walter \"MFPallytime\" on Instagram: “Lol gg”") - XCTAssertEqual(content.imageUrl, "https://scontent-mia3-2.cdninstagram.com/vp/9035a7d6b32e6f840856661e4a11e3cf/5CFC285B/t51.2885-15/e35/47690175_2275988962411653_1145978227188801192_n.jpg?_nc_ht=scontent-mia3-2.cdninstagram.com") + // Actual URL can change based on network response + // https://scontent-mia3-2.cdninstagram.com/vp/9035a7d6b32e6f840856661e4a11e3cf/5CFC285B/t51.2885-15/e35/47690175_2275988962411653_1145978227188801192_n.jpg?_nc_ht=scontent-mia3-2.cdninstagram.com + // It seems like some parts of the URL are stable, so we can pattern match, but if this continues to be brittle we may choose + // to remove it or stub the network response + XCTAssertMatch(expectedPattern: "^https://.*.cdninstagram.com/.*/47690175_2275988962411653_1145978227188801192_n.jpg\\?.*$", + actualText: content.imageUrl!) expectation.fulfill() }.catch { (error) in