forked from 47-studio-org/openlibrary
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_sharing.py
123 lines (115 loc) · 4.96 KB
/
test_sharing.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import pytest
from splinter import Browser
class TestSharing:
# host = 'https://openlibrary.org'
host = 'http://localhost:8080'
def login(self, browser_instance):
browser_instance.visit(self.host)
browser_instance.find_link_by_text('Log in').first.click()
browser_instance.fill('username', '[email protected]')
browser_instance.fill('password', 'openlibrary')
browser_instance.find_by_value('Log In').first.click()
@pytest.fixture
def browser(self):
browser = Browser('chrome')
yield browser
browser.quit()
def test_open_graph_metadata_on_author(self, browser):
url = self.host + '/authors/OL1518080A/Lawrence_Lessig'
browser.visit(url)
assert browser.is_element_present_by_css(
"meta[property='og:title'][content*='Lawrence Lessig']"
)
assert browser.is_element_present_by_css(
"meta[property='og:type'][content='books.author']"
)
assert browser.is_element_present_by_css(
"meta[property='og:image'][content*='openlibrary.org/images']"
)
assert browser.is_element_present_by_css(
"meta[property='og:url'][content*='authors/OL1518080A/Lawrence_Lessig']"
)
assert browser.is_element_present_by_css(
"meta[property='og:site_name'][content='Open Library']"
)
assert browser.is_element_present_by_css(
"meta[property='og:description'][content*='Lawrence Lessig']"
)
assert browser.is_element_present_by_css(
"a[href*='facebook.com/sharer/sharer.php']"
)
assert browser.is_element_present_by_css("a[href*='twitter.com/intent/tweet']")
def test_open_graph_metadata_on_work(self, browser):
url = self.host + '/works/OL6037022W/Remix'
browser.visit(url)
assert browser.is_element_present_by_css(
"meta[property='og:title'][content*='Remix']"
)
assert browser.is_element_present_by_css(
"meta[property='og:type'][content='books.book']"
)
assert browser.is_element_present_by_css(
"meta[property='og:image'][content*='openlibrary.org/images']"
)
assert browser.is_element_present_by_css(
"meta[property='og:url'][content*='works/OL6037022W/Remix']"
)
assert browser.is_element_present_by_css(
"meta[property='og:site_name'][content='Open Library']"
)
assert browser.is_element_present_by_css(
"meta[property='og:description'][content*='Remix']"
)
assert browser.is_element_present_by_css(
"a[href*='facebook.com/sharer/sharer.php']"
)
assert browser.is_element_present_by_css("a[href*='twitter.com/intent/tweet']")
def test_open_graph_metadata_on_edition(self, browser):
url = self.host + '/books/OL24218235M/Remix'
browser.visit(url)
assert browser.is_element_present_by_css(
"meta[property='og:title'][content*='Remix']"
)
assert browser.is_element_present_by_css(
"meta[property='og:type'][content='books.book']"
)
assert browser.is_element_present_by_css(
"meta[property='og:image'][content*='.jpg']"
)
assert browser.is_element_present_by_css(
"meta[property='og:url'][content*='books/OL24218235M/Remix']"
)
assert browser.is_element_present_by_css(
"meta[property='og:site_name'][content='Open Library']"
)
assert browser.is_element_present_by_css(
"meta[property='og:description'][content*='Remix']"
)
assert browser.is_element_present_by_css(
"a[href*='facebook.com/sharer/sharer.php']"
)
assert browser.is_element_present_by_css("a[href*='twitter.com/intent/tweet']")
def test_open_graph_metadata_on_list(self, browser):
"""Assumes that one list has been created with Remix as its entry"""
browser.visit(self.host + '/lists')
browser.find_by_css('.changeHistory a').first.click()
assert browser.is_element_present_by_css(
"meta[property='og:title'][content*='Lists']"
)
assert browser.is_element_present_by_css(
"meta[property='og:type'][content='website']"
)
assert browser.is_element_present_by_css(
"meta[property='og:image'][content*='openlibrary.org/images']"
)
assert browser.is_element_present_by_css(
"meta[property='og:url'][content*='/lists/']"
)
assert browser.is_element_present_by_css(
"meta[property='og:site_name'][content='Open Library']"
)
assert browser.is_element_present_by_css("meta[property='og:description']")
assert browser.is_element_present_by_css(
"a[href*='facebook.com/sharer/sharer.php']"
)
assert browser.is_element_present_by_css("a[href*='twitter.com/intent/tweet']")