settings = SettingsController::getInstance(); $this->url_decorator = new UrlDecorator(WPFunctions::get(), $this->settings); } function testItDoesntDoAnythingWhenNoReferralId() { $this->settings->set(ReferralDetector::REFERRAL_SETTING_NAME, null); $url = 'http://example.com'; expect($this->url_decorator->decorate($url))->equals($url); } function testItCorrectlyAddsReferralId() { $this->settings->set(ReferralDetector::REFERRAL_SETTING_NAME, 'abcdefgh'); expect($this->url_decorator->decorate('http://example.com/')) ->equals('http://example.com/?ref=abcdefgh'); expect($this->url_decorator->decorate('http://example.com/?param=value')) ->equals('http://example.com/?param=value&ref=abcdefgh'); expect($this->url_decorator->decorate('http://example.com/?param=value#hash/?param=val')) ->equals('http://example.com/?param=value&ref=abcdefgh#hash/?param=val'); } }