Bug#988977: buster-pu: package libbusiness-us-usps-webtools-perl/1.122-1+deb10u1
Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: debian-perl@lists.debian.org
[ Reason ]
USPS is sending notices that HTTP access will be turned off shortly, in
favor of HTTPS.
Given that is a web service that will break in the wild, in addition to
a regular update for unstable, we should update buster (and stretch)
via stable-updates (and oldstable-updates).
[ Impact ]
libbusiness-us-usps-webtools-perl will be unusable after June 24th,
2021.
[ Tests ]
(What automated or manual tests cover the affected code?)
[ Risks ]
Patch is a backport of 1.124 -> 1.125 adapted for 1.122. Even if there
is a little risk (since I'm not able to fully test it), not updating
this package is a more elevated risk.
[ Checklist ]
[X] *all* changes are documented in the d/changelog
[X] I reviewed all changes and I approve them
[X] attach debdiff against the package in (old)stable
[X] the issue is verified as fixed in unstable
[ Changes ]
API change
Cheers,
Yadd
diff --git a/debian/changelog b/debian/changelog
index 3a65ac0..964b422 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libbusiness-us-usps-webtools-perl (1.122-1+deb10u1) buster; urgency=medium
+
+ * Update to new US-USPS API (Closes: #988330)
+
+ -- Yadd <yadd@debian.org> Sat, 22 May 2021 12:17:01 +0200
+
libbusiness-us-usps-webtools-perl (1.122-1) unstable; urgency=medium
[ gregor herrmann ]
diff --git a/debian/patches/series b/debian/patches/series
index 38edaa7..4562936 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
spelling-errors.patch
+update-us-usps-webtools-to-https.patch
diff --git a/debian/patches/update-us-usps-webtools-to-https.patch b/debian/patches/update-us-usps-webtools-to-https.patch
new file mode 100644
index 0000000..7269fd1
--- /dev/null
+++ b/debian/patches/update-us-usps-webtools-to-https.patch
@@ -0,0 +1,307 @@
+Description: update due to US-USPS changes
+Author: Xavier Guimard <x.guimard@free.fr>
+Forwarded: not-needed
+Last-Update: 2021-05-21
+
+--- a/lib/Business/US/USPS/WebTools.pm
++++ b/lib/Business/US/USPS/WebTools.pm
+@@ -41,7 +41,7 @@
+ =cut
+
+ my $LiveServer = "production.shippingapis.com";
+-my $TestServer = "testing.shippingapis.com";
++my $TestServer = "stg-production.shippingapis.com";
+
+ =item new( ANONYMOUS_HASH )
+
+@@ -123,7 +123,7 @@
+ $_[0]->_live ?
+ "/ShippingAPI.dll"
+ :
+- "/ShippingAPITest.dll"
++ "/ShippingAPI.dll"
+ }
+
+ sub _make_query_string {
+@@ -145,7 +145,7 @@
+ sub _make_url {
+ my( $self, $hash ) = @_;
+
+- $self->{url} = qq|http://| . $self->_api_host . $self->_api_path .
++ $self->{url} = qq|https://| . $self->_api_host . $self->_api_path .
+ "?" . $self->_make_query_string( $hash );
+ }
+
+--- a/t/address_verification.t
++++ b/t/address_verification.t
+@@ -21,23 +21,35 @@
+ "environment variables to run these tests\n";
+ }
+
++my $is_testing = uc($ENV{USPS_WEBTOOLS_ENVIRONMENT}) eq 'TESTING';
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ use_ok( $class );
+
+ my $verifier;
+-my $base = qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=Verify&XML=%3CAddressValidateRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CIncludeOptionalElements%3Etrue%3C%2FIncludeOptionalElements%3E%3CReturnCarrierRoute%3Etrue%3C%2FReturnCarrierRoute%3E|;
++
++my $base = 'https://' . ($is_testing ? 'stg-' : '') . qq|production.shippingapis.com/ShippingAPI.dll?API=Verify&XML=%3CAddressValidateRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CIncludeOptionalElements%3Etrue%3C%2FIncludeOptionalElements%3E%3CReturnCarrierRoute%3Etrue%3C%2FReturnCarrierRoute%3E|;
+
+ subtest setup => sub {
+ $verifier = $class->new( {
+ UserID => $ENV{USPS_WEBTOOLS_USERID},
+ Password => $ENV{USPS_WEBTOOLS_PASSWORD},
+- Testing => 1,
++ Testing => $is_testing,
+ } );
+ isa_ok( $verifier, $class );
+
+ can_ok( $verifier, $method );
+ };
+
++=pod
++
++2021-05-19: This test is failing because the API is no longer returning the
++expected output; it now includes the following warning:
++
++Default address: The address you entered was found but more information is
++needed (such as an apartment, suite, or box number) to match to a specific
++address.
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good response #1
+ subtest good_response_1 => sub {
+@@ -81,6 +93,8 @@
+ is( $hash->{Zip4}, '1441', 'Zip4 matches for Ivy Lane' );
+ };
+
++=cut
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good response #2
+ subtest good_response_1 => sub {
+--- a/t/city_state_lookup.t
++++ b/t/city_state_lookup.t
+@@ -21,6 +21,10 @@
+ "environment variables to run these tests\n";
+ }
+
++my $is_testing = uc($ENV{USPS_WEBTOOLS_ENVIRONMENT}) eq 'TESTING';
++
++my $base = 'https://' . ($is_testing ? 'stg-' : '') . 'production.shippingapis.com/ShippingAPI.dll';
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ use_ok( $class );
+
+@@ -29,7 +33,7 @@
+ $verifier = $class->new( {
+ UserID => $ENV{USPS_WEBTOOLS_USERID},
+ Password => $ENV{USPS_WEBTOOLS_PASSWORD},
+- Testing => 1,
++ Testing => $is_testing,
+ } );
+ isa_ok( $verifier, $class );
+
+@@ -44,7 +48,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E90210%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++ qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E90210%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ "URL for 90210 is correct",
+ );
+
+@@ -77,7 +81,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E20770%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++ qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E20770%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ "URL for 20770 is correct",
+ );
+
+@@ -110,7 +114,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21113%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++ qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21113%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ "URL for 21113 is correct",
+ );
+
+@@ -143,7 +147,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21032%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++ qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21032%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ "URL for 21032 is correct",
+ );
+
+@@ -182,7 +186,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21117%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++ qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E21117%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ "URL for Sharonwood Road is correct",
+ );
+
+@@ -221,7 +225,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E99999%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
++ qq|$base?API=CityStateLookup&XML=%3CCityStateLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CZipCode+ID%3D%220%22%3E%3CZip5%3E99999%3C%2FZip5%3E%3C%2FZipCode%3E%3C%2FCityStateLookupRequest%3E|,
+ "URL for Sharonwood Road Error is correct",
+ );
+
+--- a/t/test_or_live.t
++++ b/t/test_or_live.t
+@@ -15,8 +15,8 @@
+ ok( $webtools->_testing, "I think I'm testing" );
+
+ is( ! $webtools->_live, 1, "I don't think I'm live!" );
+- is( $webtools->_api_host, "testing.shippingapis.com", "Testing host is right" );
+- is( $webtools->_api_path, "/ShippingAPITest.dll", "Testing path is right" );
++ is( $webtools->_api_host, "stg-production.shippingapis.com", "Testing host is right" );
++ is( $webtools->_api_path, "/ShippingAPI.dll", "Testing path is right" );
+ };
+
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+--- a/t/zip_code_lookup.t
++++ b/t/zip_code_lookup.t
+@@ -21,6 +21,10 @@
+ "environment variables to run these tests\n";
+ }
+
++my $is_testing = uc($ENV{USPS_WEBTOOLS_ENVIRONMENT}) eq 'TESTING';
++
++my $base = 'https://' . ($is_testing ? 'stg-' : '') . 'production.shippingapis.com/ShippingAPI.dll';
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ my $verifier;
+ subtest setup => sub {
+@@ -29,13 +33,22 @@
+ $verifier = $class->new( {
+ UserID => $ENV{USPS_WEBTOOLS_USERID},
+ Password => $ENV{USPS_WEBTOOLS_PASSWORD},
+- Testing => 1,
++ Testing => $is_testing,
+ } );
+ isa_ok( $verifier, $class );
+
+ can_ok( $verifier, $method );
+ };
+
++=pod
++
++2021-05-19: This test is failing because the API is no longer returning the
++expected output; it now includes the following warning:
++
++Default address: The address you entered was found but more information is
++needed (such as an apartment, suite, or box number) to match to a specific
++address.
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good Request #1
+ subtest good_request_1 => sub {
+@@ -50,7 +63,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E6406+Ivy+Lane%3C%2FAddress2%3E%3CCity%3EGreenbelt%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E6406+Ivy+Lane%3C%2FAddress2%3E%3CCity%3EGreenbelt%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Ivy Lane is correct",
+ );
+
+@@ -76,6 +89,8 @@
+ is( $hash->{Zip4}, '1441', 'Zip4 matches for Ivy Lane' );
+ };
+
++=cut
++
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+ # Good request 2
+ subtest good_request_2 => sub {
+@@ -90,7 +105,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E8+Wildwood+Drive%3C%2FAddress2%3E%3CCity%3EOld+Lyme%3C%2FCity%3E%3CState%3ECT%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E8+Wildwood+Drive%3C%2FAddress2%3E%3CCity%3EOld+Lyme%3C%2FCity%3E%3CState%3ECT%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Wildwood Drive is correct",
+ );
+
+@@ -133,7 +148,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E4411+Romlon+Street%3C%2FAddress2%3E%3CCity%3EBeltsville%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E4411+Romlon+Street%3C%2FAddress2%3E%3CCity%3EBeltsville%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Romlan Street is correct",
+ );
+
+@@ -176,7 +191,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3ELaurel%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3ELaurel%3C%2FCity%3E%3CState%3EMD%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Sharonwood Road is correct",
+ );
+
+@@ -224,7 +239,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3EWilmington%3C%2FCity%3E%3CState%3EDE%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E3527+Sharonwood+Road+Apt.+3C%3C%2FAddress2%3E%3CCity%3EWilmington%3C%2FCity%3E%3CState%3EDE%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Sharonwood Road Error is correct",
+ );
+
+@@ -279,7 +294,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E1600+Pennsylvania+Avenue%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EDC%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E1600+Pennsylvania+Avenue%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EDC%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Pennsylvania Avenue Error is correct",
+ );
+
+@@ -330,7 +345,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EZZ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3EWashington%3C%2FCity%3E%3CState%3EZZ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Main Street Error is correct",
+ );
+
+@@ -382,7 +397,7 @@
+ } );
+ is(
+ $url,
+- qq|http://testing.shippingapis.com/ShippingAPITest.dll?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3ETrenton%3C%2FCity%3E%3CState%3ENJ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
++ qq|$base?API=ZipCodeLookup&XML=%3CZipCodeLookupRequest+USERID%3D%22$ENV{USPS_WEBTOOLS_USERID}%22+PASSWORD%3D%22$ENV{USPS_WEBTOOLS_PASSWORD}%22%3E%3CAddress+ID%3D%220%22%3E%3CFirmName%3E%3C%2FFirmName%3E%3CAddress1%3E%3C%2FAddress1%3E%3CAddress2%3E123+Main+Street%3C%2FAddress2%3E%3CCity%3ETrenton%3C%2FCity%3E%3CState%3ENJ%3C%2FState%3E%3C%2FAddress%3E%3C%2FZipCodeLookupRequest%3E|,
+ "URL for Trenton, NJ Error is correct",
+ );
+
+--- a/t/track_confirm.t
++++ /dev/null
+@@ -1,14 +0,0 @@
+-#!/usr/bin/perl
+-
+-
+-use Test::More;
+-
+-my $class = "Business::US::USPS::WebTools::TrackConfirm";
+-my $method = 'track';
+-
+-
+-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+-use_ok( $class );
+-
+-
+-done_testing();
Reply to: