Skip to content

Commit c03624b

Browse files
committed
2 parents 21a3417 + 2f0902f commit c03624b

File tree

6 files changed

+175
-17
lines changed

6 files changed

+175
-17
lines changed

config/laravel-share.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@
3131
'whatsapp' => [
3232
'uri' => 'https://wa.me/?text=',
3333
'extra' => ['mini' => 'true']
34-
],
34+
],
35+
'pinterest' => [
36+
'uri' => 'http://pinterest.com/pin/create/button/?url='
37+
],
3538
],
3639

3740
/*

resources/lang/en/laravel-share-fa4.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
'gplus' => '<li><a href=":url" class="social-button :class" id=":id"><span class="fa fa-google-plus"></span></a></li>',
77
'linkedin' => '<li><a href=":url" class="social-button :class" id=":id"><span class="fa fa-linkedin"></span></a></li>',
88
'whatsapp' => '<li><a target="_blank" href=":url" class="social-button :class" id=":id"><span class="fa fa-whatsapp"></span></a></li>',
9+
'pinterest' => '<li><a href=":url" class="social-button :class" id=":id"><span class="fa fa-pinterest"></span></a></li>',
910
];
10-

resources/lang/en/laravel-share-fa5.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
'gplus' => '<li><a href=":url" class="social-button :class" id=":id"><span class="fab fa-google-plus-g"></span></a></li>',
77
'linkedin' => '<li><a href=":url" class="social-button :class" id=":id"><span class="fab fa-linkedin"></span></a></li>',
88
'whatsapp' => '<li><a target="_blank" href=":url" class="social-button :class" id=":id"><span class="fab fa-whatsapp"></span></a></li>',
9+
'pinterest' => '<li><a href=":url" class="social-button :class" id=":id"><span class="fab fa-pinterest"></span></a></li>',
910
];
10-

src/Share.php

+14
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,20 @@ public function linkedin($summary = '')
172172
return $this;
173173
}
174174

175+
/**
176+
* Pinterest share link
177+
*
178+
* @return $this
179+
*/
180+
public function pinterest()
181+
{
182+
$url = config('laravel-share.services.pinterest.uri') . $this->url;
183+
184+
$this->buildLink('pinterest', $url);
185+
186+
return $this;
187+
}
188+
175189
/**
176190
* Build a single link
177191
*

tests/CombinedShareTest.php

+24-14
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ public function it_can_generate_generate_multiple_share_links_at_once()
1616
->twitter()
1717
->linkedin()
1818
->googlePlus()
19-
->whatsapp();
20-
19+
->whatsapp()
20+
->pinterest();
21+
/*
2122
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fa fa-facebook-official"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fa fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-google-plus"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fa fa-whatsapp"></span></a></li></ul></div>';
22-
23+
*/
24+
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fa fa-facebook-official"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fa fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-google-plus"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fa fa-whatsapp"></span></a></li><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-pinterest"></span></a></li></ul></div>';
2325
$this->assertEquals($expected, $result);
2426
}
2527

@@ -34,10 +36,10 @@ public function it_can_generate_generate_multiple_share_links_at_once_with_fa5()
3436
->twitter()
3537
->linkedin()
3638
->googlePlus()
37-
->whatsapp();
38-
39-
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fab fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-google-plus-g"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fab fa-whatsapp"></span></a></li></ul></div>';
39+
->whatsapp()
40+
->pinterest();
4041

42+
$expected ='<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fab fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-google-plus-g"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fab fa-whatsapp"></span></a></li><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-pinterest"></span></a></li></ul></div>';
4143
$this->assertEquals($expected, $result);
4244
}
4345

@@ -51,8 +53,10 @@ public function it_can_generate_multiple_share_links_at_once_and_multiple_times_
5153
->twitter()
5254
->linkedin()
5355
->googlePlus()
54-
->whatsapp();
55-
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fa fa-facebook-official"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fa fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-google-plus"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fa fa-whatsapp"></span></a></li></ul></div>';
56+
->whatsapp()
57+
->pinterest();
58+
59+
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fa fa-facebook-official"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fa fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-google-plus"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fa fa-whatsapp"></span></a></li><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-pinterest"></span></a></li></ul></div>';
5660

5761
$this->assertEquals($expected, $result);
5862

@@ -76,8 +80,10 @@ public function it_can_generate_multiple_share_links_at_once_and_multiple_times_
7680
->twitter()
7781
->linkedin()
7882
->googlePlus()
79-
->whatsapp();
80-
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fab fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-google-plus-g"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fab fa-whatsapp"></span></a></li></ul></div>';
83+
->whatsapp()
84+
->pinterest();
85+
86+
$expected = '<div id="social-links"><ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button " id=""><span class="fab fa-facebook-square"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-twitter"></span></a></li><li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https://codeswitch.be&title=My+share+title&summary=" class="social-button " id=""><span class="fab fa-linkedin"></span></a></li><li><a href="https://plus.google.com/share?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-google-plus-g"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button " id=""><span class="fab fa-whatsapp"></span></a></li><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-pinterest"></span></a></li></ul></div>';
8187

8288
$this->assertEquals($expected, $result);
8389

@@ -98,9 +104,10 @@ public function it_can_generate_generate_multiple_share_links_at_once_with_extra
98104
$result = ShareFacade::page('https://codeswitch.be', 'My share title', ['class' => 'my-class', 'id' => 'my-id'], '<ul>', '</ul>')
99105
->facebook()
100106
->twitter()
101-
->whatsapp();
107+
->whatsapp()
108+
->pinterest();
102109

103-
$expected = '<ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-facebook-official"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-twitter"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-whatsapp"></span></a></li></ul>';
110+
$expected = '<ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-facebook-official"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-twitter"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-whatsapp"></span></a></li><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-pinterest"></span></a></li></ul>';
104111

105112
$this->assertEquals($expected, $result);
106113
}
@@ -114,10 +121,13 @@ public function it_can_generate_generate_multiple_share_links_at_once_with_extra
114121
$result = ShareFacade::page('https://codeswitch.be', 'My share title', ['class' => 'my-class', 'id' => 'my-id'], '<ul>', '</ul>')
115122
->facebook()
116123
->twitter()
117-
->whatsapp();
124+
->whatsapp()
125+
->pinterest();
118126

119127
$expected = '<ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-facebook-square"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-twitter"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-whatsapp"></span></a></li></ul>';
120128

129+
$expected = '<ul><li><a href="https://www.facebook.com/sharer/sharer.php?u=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-facebook-square"></span></a></li><li><a href="https://twitter.com/intent/tweet?text=My+share+title&url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-twitter"></span></a></li><li><a target="_blank" href="https://wa.me/?text=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-whatsapp"></span></a></li><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-pinterest"></span></a></li></ul>';
130+
121131
$this->assertEquals($expected, $result);
122132
}
123-
}
133+
}

tests/PinterestShareTest.php

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
<?php
2+
3+
namespace Jorenvh\Share\Test;
4+
5+
use Jorenvh\Share\ShareFacade;
6+
7+
class PinterestShareTest extends TestCase
8+
{
9+
/**
10+
* @test
11+
*/
12+
public function it_can_generate_a_pinterest_share_link()
13+
{
14+
$result = ShareFacade::page('https://codeswitch.be')->pinterest();
15+
$expected = '<div id="social-links"><ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-pinterest"></span></a></li></ul></div>';
16+
17+
$this->assertEquals($expected, $result);
18+
}
19+
20+
/**
21+
* @test
22+
*/
23+
public function it_can_generate_a_pinterest_share_link_with_fa5()
24+
{
25+
config(['laravel-share.fontAwesomeVersion' => 5]);
26+
$result = ShareFacade::page('https://codeswitch.be')->pinterest();
27+
$expected = '<div id="social-links"><ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-pinterest"></span></a></li></ul></div>';
28+
29+
$this->assertEquals($expected, $result);
30+
}
31+
32+
/**
33+
* @test
34+
*/
35+
public function it_can_generate_a_pinterest_share_link_with_a_custom_class()
36+
{
37+
$result = ShareFacade::page('https://codeswitch.be', null, ['class' => 'my-class'])
38+
->pinterest();
39+
$expected = '<div id="social-links"><ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class" id=""><span class="fa fa-pinterest"></span></a></li></ul></div>';
40+
41+
$this->assertEquals($expected, $result);
42+
}
43+
44+
/**
45+
* @test
46+
*/
47+
public function it_can_generate_a_pinterest_share_link_with_a_custom_class_with_fa5()
48+
{
49+
config(['laravel-share.fontAwesomeVersion' => 5]);
50+
$result = ShareFacade::page('https://codeswitch.be', null, ['class' => 'my-class'])
51+
->pinterest();
52+
$expected = '<div id="social-links"><ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class" id=""><span class="fab fa-pinterest"></span></a></li></ul></div>';
53+
54+
$this->assertEquals($expected, $result);
55+
}
56+
57+
/**
58+
* @test
59+
*/
60+
public function it_can_generate_a_pinterest_share_link_with_a_custom_class_and_custom_id()
61+
{
62+
$result = ShareFacade::page('https://codeswitch.be', null, ['class' => 'my-class', 'id' => 'my-id'])
63+
->pinterest();
64+
$expected = '<div id="social-links"><ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fa fa-pinterest"></span></a></li></ul></div>';
65+
66+
$this->assertEquals($expected, $result);
67+
}
68+
69+
/**
70+
* @test
71+
*/
72+
public function it_can_generate_a_pinterest_share_link_with_a_custom_class_and_custom_id_with_fa5()
73+
{
74+
config(['laravel-share.fontAwesomeVersion' => 5]);
75+
$result = ShareFacade::page('https://codeswitch.be', null, ['class' => 'my-class', 'id' => 'my-id'])
76+
->pinterest();
77+
$expected = '<div id="social-links"><ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class" id="my-id"><span class="fab fa-pinterest"></span></a></li></ul></div>';
78+
79+
$this->assertEquals($expected, $result);
80+
}
81+
82+
/**
83+
* @test
84+
*/
85+
public function it_can_generate_a_pinterest_share_link_with_custom_prefix_and_suffix()
86+
{
87+
$result = ShareFacade::page('https://codeswitch.be', null, [], '<ul>', '</ul>')
88+
->pinterest();
89+
$expected = '<ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fa fa-pinterest"></span></a></li></ul>';
90+
91+
$this->assertEquals($expected, $result);
92+
}
93+
94+
/**
95+
* @test
96+
*/
97+
public function it_can_generate_a_pinterest_share_link_with_custom_prefix_and_suffix_with_fa5()
98+
{
99+
config(['laravel-share.fontAwesomeVersion' => 5]);
100+
$result = ShareFacade::page('https://codeswitch.be', null, [], '<ul>', '</ul>')
101+
->pinterest();
102+
$expected = '<ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button " id=""><span class="fab fa-pinterest"></span></a></li></ul>';
103+
104+
$this->assertEquals($expected, $result);
105+
}
106+
107+
/**
108+
* @test
109+
*/
110+
public function it_can_generate_a_pinterest_share_link_with_all_extra_options()
111+
{
112+
$result = ShareFacade::page('https://codeswitch.be', 'title that is not used for fb', ['class' => 'my-class my-class2', 'id' => 'fb-share'], '<ul>', '</ul>')
113+
->pinterest();
114+
$expected = '<ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class my-class2" id="fb-share"><span class="fa fa-pinterest"></span></a></li></ul>';
115+
116+
$this->assertEquals($expected, $result);
117+
}
118+
119+
/**
120+
* @test
121+
*/
122+
public function it_can_generate_a_pinterest_share_link_with_all_extra_options_fa5()
123+
{
124+
config(['laravel-share.fontAwesomeVersion' => 5]);
125+
$result = ShareFacade::page('https://codeswitch.be', 'title that is not used for fb', ['class' => 'my-class my-class2', 'id' => 'fb-share'], '<ul>', '</ul>')
126+
->pinterest();
127+
$expected = '<ul><li><a href="http://pinterest.com/pin/create/button/?url=https://codeswitch.be" class="social-button my-class my-class2" id="fb-share"><span class="fab fa-pinterest"></span></a></li></ul>';
128+
129+
$this->assertEquals($expected, $result);
130+
}
131+
}

0 commit comments

Comments
 (0)