Skip to content

Commit 66c8d5f

Browse files
committed
Started tests
1 parent 687d57d commit 66c8d5f

File tree

1 file changed

+253
-0
lines changed

1 file changed

+253
-0
lines changed

tests/ConvertKitAPITest.php

Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2699,6 +2699,259 @@ public function testGetTagSubscriptionsWithInvalidTagID()
26992699
$result = $this->api->get_tag_subscriptions(12345);
27002700
}
27012701

2702+
/**
2703+
* Test that add_subscribers_to_forms() returns the expected data.
2704+
*
2705+
* @since 2.1.0
2706+
*
2707+
* @return void
2708+
*/
2709+
public function testAddSubscribersToForms()
2710+
{
2711+
// Create subscriber.
2712+
$emailAddress = $this->generateEmailAddress();
2713+
$subscriber = $this->api->create_subscriber(
2714+
email_address: $emailAddress
2715+
);
2716+
2717+
// Set subscriber_id to ensure subscriber is unsubscribed after test.
2718+
$this->subscriber_ids[] = $subscriber->subscriber->id;
2719+
2720+
// Add subscribers to forms.
2721+
$result = $this->api->add_subscribers_to_forms(
2722+
forms_subscribers_ids: [
2723+
[
2724+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID'],
2725+
'subscriber_id' => $subscriber->subscriber->id,
2726+
],
2727+
[
2728+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID_2'],
2729+
'subscriber_id' => $subscriber->subscriber->id,
2730+
],
2731+
]
2732+
);
2733+
2734+
// Assert no failures.
2735+
$this->assertCount(0, $result->failures);
2736+
2737+
// Confirm result is an array comprising of each subscriber that was created.
2738+
$this->assertIsArray($result->subscribers);
2739+
}
2740+
2741+
/**
2742+
* Test that add_subscribers_to_forms() returns the expected data
2743+
* when a referrer URL is specified.
2744+
*
2745+
* @since 2.1.0
2746+
*
2747+
* @return void
2748+
*/
2749+
public function testAddSubscribersToFormsWithReferrer()
2750+
{
2751+
// Create subscriber.
2752+
$emailAddress = $this->generateEmailAddress();
2753+
$subscriber = $this->api->create_subscriber(
2754+
email_address: $emailAddress
2755+
);
2756+
2757+
// Set subscriber_id to ensure subscriber is unsubscribed after test.
2758+
$this->subscriber_ids[] = $subscriber->subscriber->id;
2759+
2760+
// Add subscribers to forms.
2761+
$result = $this->api->add_subscribers_to_forms(
2762+
forms_subscribers_ids: [
2763+
[
2764+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID'],
2765+
'subscriber_id' => $subscriber->subscriber->id,
2766+
],
2767+
[
2768+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID_2'],
2769+
'subscriber_id' => $subscriber->subscriber->id,
2770+
],
2771+
],
2772+
referrer: 'https://mywebsite.com/bfpromo/'
2773+
);
2774+
2775+
// Assert no failures.
2776+
$this->assertCount(0, $result->failures);
2777+
2778+
// Confirm result is an array comprising of each subscriber that was created.
2779+
$this->assertIsArray($result->subscribers);
2780+
2781+
// Assert referrer data set for subscribers.
2782+
foreach($result->subscribers as $subscriber) {
2783+
$this->assertEquals(
2784+
$subscriber->referrer,
2785+
'https://mywebsite.com/bfpromo/'
2786+
);
2787+
}
2788+
}
2789+
2790+
/**
2791+
* Test that add_subscribers_to_forms() returns the expected data
2792+
* when a referrer URL with UTM parameters is specified.
2793+
*
2794+
* @since 2.1.0
2795+
*
2796+
* @return void
2797+
*/
2798+
public function testAddSubscribersToFormsWithReferrerUTMParams()
2799+
{
2800+
// Define referrer.
2801+
$referrerUTMParams = [
2802+
'utm_source' => 'facebook',
2803+
'utm_medium' => 'cpc',
2804+
'utm_campaign' => 'black_friday',
2805+
'utm_term' => 'car_owners',
2806+
'utm_content' => 'get_10_off',
2807+
];
2808+
$referrer = 'https://mywebsite.com/bfpromo/?' . http_build_query($referrerUTMParams);
2809+
2810+
// Create subscriber.
2811+
$emailAddress = $this->generateEmailAddress();
2812+
$subscriber = $this->api->create_subscriber(
2813+
email_address: $emailAddress
2814+
);
2815+
2816+
// Set subscriber_id to ensure subscriber is unsubscribed after test.
2817+
$this->subscriber_ids[] = $subscriber->subscriber->id;
2818+
2819+
// Add subscribers to forms.
2820+
$result = $this->api->add_subscribers_to_forms(
2821+
forms_subscribers_ids: [
2822+
[
2823+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID'],
2824+
'subscriber_id' => $subscriber->subscriber->id,
2825+
],
2826+
[
2827+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID_2'],
2828+
'subscriber_id' => $subscriber->subscriber->id,
2829+
],
2830+
],
2831+
referrer: $referer
2832+
);
2833+
2834+
// Assert no failures.
2835+
$this->assertCount(0, $result->failures);
2836+
2837+
// Confirm result is an array comprising of each subscriber that was created.
2838+
$this->assertIsArray($result->subscribers);
2839+
2840+
// Assert referrer data set for subscribers.
2841+
foreach($result->subscribers as $subscriber) {
2842+
$this->assertEquals(
2843+
$subscriber->referrer,
2844+
$referer
2845+
);
2846+
$this->assertEquals(
2847+
$subscriber->referrer_utm_parameters->source,
2848+
$referrerUTMParams['utm_source']
2849+
);
2850+
$this->assertEquals(
2851+
$subscriber->referrer_utm_parameters->medium,
2852+
$referrerUTMParams['utm_medium']
2853+
);
2854+
$this->assertEquals(
2855+
$subscriber->referrer_utm_parameters->campaign,
2856+
$referrerUTMParams['utm_campaign']
2857+
);
2858+
$this->assertEquals(
2859+
$subscriber->referrer_utm_parameters->term,
2860+
$referrerUTMParams['utm_term']
2861+
);
2862+
$this->assertEquals(
2863+
$subscriber->referrer_utm_parameters->content,
2864+
$referrerUTMParams['utm_content']
2865+
);
2866+
}
2867+
}
2868+
2869+
/**
2870+
* Test that add_subscribers_to_forms() returns the expected errors
2871+
* when invalid Form IDs are specified.
2872+
*
2873+
* @since 2.1.0
2874+
*
2875+
* @return void
2876+
*/
2877+
public function testAddSubscribersToFormsWithInvalidFormIDs()
2878+
{
2879+
// Create subscriber.
2880+
$emailAddress = $this->generateEmailAddress();
2881+
$subscriber = $this->api->create_subscriber(
2882+
email_address: $emailAddress
2883+
);
2884+
2885+
// Set subscriber_id to ensure subscriber is unsubscribed after test.
2886+
$this->subscriber_ids[] = $subscriber->subscriber->id;
2887+
2888+
// Add subscribers to forms.
2889+
$result = $this->api->add_subscribers_to_forms(
2890+
forms_subscribers_ids: [
2891+
[
2892+
'form_id' => 9999999,
2893+
'subscriber_id' => $subscriber->subscriber->id,
2894+
],
2895+
[
2896+
'form_id' => 9999999,
2897+
'subscriber_id' => $subscriber->subscriber->id,
2898+
],
2899+
]
2900+
);
2901+
2902+
// Assert failures.
2903+
$this->assertCount(2, $result->failures);
2904+
foreach($result->failures as $failure) {
2905+
$this->assertEquals(
2906+
$failure->errors[0],
2907+
'Form does not exist'
2908+
);
2909+
}
2910+
}
2911+
2912+
/**
2913+
* Test that add_subscribers_to_forms() returns the expected errors
2914+
* when invalid Subscriber IDs are specified.
2915+
*
2916+
* @since 2.1.0
2917+
*
2918+
* @return void
2919+
*/
2920+
public function testAddSubscribersToFormsWithInvalidSubscriberIDs()
2921+
{
2922+
// Create subscriber.
2923+
$emailAddress = $this->generateEmailAddress();
2924+
$subscriber = $this->api->create_subscriber(
2925+
email_address: $emailAddress
2926+
);
2927+
2928+
// Set subscriber_id to ensure subscriber is unsubscribed after test.
2929+
$this->subscriber_ids[] = $subscriber->subscriber->id;
2930+
2931+
// Add subscribers to forms.
2932+
$result = $this->api->add_subscribers_to_forms(
2933+
forms_subscribers_ids: [
2934+
[
2935+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID'],
2936+
'subscriber_id' => 999999,
2937+
],
2938+
[
2939+
'form_id' => (int) $_ENV['CONVERTKIT_API_FORM_ID_2'],
2940+
'subscriber_id' => 999999,
2941+
],
2942+
]
2943+
);
2944+
2945+
// Assert failures.
2946+
$this->assertCount(2, $result->failures);
2947+
foreach($result->failures as $failure) {
2948+
$this->assertEquals(
2949+
$failure->errors[0],
2950+
'Subscriber does not exist'
2951+
);
2952+
}
2953+
}
2954+
27022955
/**
27032956
* Test that add_subscriber_to_form_by_email() returns the expected data.
27042957
*

0 commit comments

Comments
 (0)