| author | Da Risk <da_risk@geekorum.com> |
| Wed, 11 Sep 2019 14:50:08 -0700 | |
| changeset 455 | c743a2f2ca8a |
| parent 454 | 6398d0a6def5 |
| child 611 | 91b8d76c03cd |
| permissions | -rw-r--r-- |
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
1 |
/* |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
2 |
* Geekttrss is a RSS feed reader application on the Android Platform. |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
3 |
* |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
4 |
* Copyright (C) 2017-2019 by Frederic-Charles Barthelery. |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
5 |
* |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
6 |
* This file is part of Geekttrss. |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
7 |
* |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
8 |
* Geekttrss is free software: you can redistribute it and/or modify |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
9 |
* it under the terms of the GNU General Public License as published by |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
10 |
* the Free Software Foundation, either version 3 of the License, or |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
11 |
* (at your option) any later version. |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
12 |
* |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
13 |
* Geekttrss is distributed in the hope that it will be useful, |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
14 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
15 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
16 |
* GNU General Public License for more details. |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
17 |
* |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
18 |
* You should have received a copy of the GNU General Public License |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
19 |
* along with Geekttrss. If not, see <http://www.gnu.org/licenses/>. |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
20 |
*/ |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
21 |
package com.geekorum.favikonsnoop.snoopers |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
22 |
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
23 |
import com.geekorum.favikonsnoop.FaviconInfo |
|
455
c743a2f2ca8a
faviKonSnoop: switch input to okio source
Da Risk <da_risk@geekorum.com>
parents:
454
diff
changeset
|
24 |
import com.geekorum.favikonsnoop.source |
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
25 |
import com.google.common.truth.Truth.assertThat |
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
26 |
import io.mockk.every |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
27 |
import io.mockk.mockk |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
28 |
import io.mockk.slot |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
29 |
import okhttp3.HttpUrl.Companion.toHttpUrl |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
30 |
import okhttp3.Protocol.HTTP_1_1 |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
31 |
import okhttp3.Request |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
32 |
import okhttp3.Response |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
33 |
import okhttp3.ResponseBody.Companion.toResponseBody |
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
34 |
import org.junit.Test |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
35 |
import kotlin.test.BeforeTest |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
36 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
37 |
private val SIMPLE_MANIFEST = """ |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
38 |
{
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
39 |
"name": "Donate App", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
40 |
"description": "This app helps you donate to worthy causes.", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
41 |
"icons": [{
|
|
454
6398d0a6def5
faviKonSnoop: fix issue when icons don't define sizes attribute
Da Risk <da_risk@geekorum.com>
parents:
453
diff
changeset
|
42 |
"src": "images/icon.png" |
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
43 |
}] |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
44 |
} |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
45 |
""".trimIndent() |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
46 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
47 |
private val TYPICAL_MANIFEST = """ |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
48 |
{
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
49 |
"lang": "en", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
50 |
"dir": "ltr", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
51 |
"name": "Super Racer 3000", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
52 |
"description": "The ultimate futuristic racing game from the future!", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
53 |
"short_name": "Racer3K", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
54 |
"icons": [{
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
55 |
"src": "icon/lowres.webp", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
56 |
"sizes": "64x64", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
57 |
"type": "image/webp" |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
58 |
},{
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
59 |
"src": "icon/lowres.png", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
60 |
"sizes": "64x64" |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
61 |
}, {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
62 |
"src": "icon/hd_hi", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
63 |
"sizes": "128x128" |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
64 |
}], |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
65 |
"scope": "/racer/", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
66 |
"start_url": "/racer/start.html", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
67 |
"display": "fullscreen", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
68 |
"orientation": "landscape", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
69 |
"theme_color": "aliceblue", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
70 |
"background_color": "red", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
71 |
"serviceworker": {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
72 |
"src": "sw.js", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
73 |
"scope": "/racer/", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
74 |
"update_via_cache": "none" |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
75 |
}, |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
76 |
"screenshots": [{
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
77 |
"src": "screenshots/in-game-1x.jpg", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
78 |
"sizes": "640x480", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
79 |
"type": "image/jpeg" |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
80 |
},{
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
81 |
"src": "screenshots/in-game-2x.jpg", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
82 |
"sizes": "1280x920", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
83 |
"type": "image/jpeg" |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
84 |
}] |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
85 |
} |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
86 |
""".trimIndent() |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
87 |
|
|
454
6398d0a6def5
faviKonSnoop: fix issue when icons don't define sizes attribute
Da Risk <da_risk@geekorum.com>
parents:
453
diff
changeset
|
88 |
private const val INVALID_MANIFEST = "{}"
|
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
89 |
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
90 |
private val INVALID_HTML = |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
91 |
"""fw""".trimIndent() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
92 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
93 |
private val NO_MANIFEST_HTML = """ |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
94 |
<html lang="en"> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
95 |
<head> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
96 |
<title>lsForums — Inbox</title> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
97 |
<link rel=icon href=favicon.png sizes="16x16" type="image/png"> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
98 |
<script src=lsforums.js></script> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
99 |
<meta name=application-name content="lsForums"> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
100 |
</head> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
101 |
</html> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
102 |
""".trimIndent() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
103 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
104 |
private val WITH_MANIFEST_HTML = """ |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
105 |
<html lang="en"> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
106 |
<head> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
107 |
<title>lsForums — Inbox</title> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
108 |
<link rel="manifest" href=/static/manifest.json > |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
109 |
<link rel=icon href=favicon.png sizes="16x16" type="image/png"> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
110 |
</head> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
111 |
</html> |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
112 |
""".trimIndent() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
113 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
114 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
115 |
class AppManifestSnooperTest {
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
116 |
lateinit var subject: AppManifestSnooper |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
117 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
118 |
@BeforeTest |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
119 |
fun setUp() {
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
120 |
subject = AppManifestSnooper() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
121 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
122 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
123 |
@Test |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
124 |
fun testInvalidHtmlReturnsEmpty() {
|
|
455
c743a2f2ca8a
faviKonSnoop: switch input to okio source
Da Risk <da_risk@geekorum.com>
parents:
454
diff
changeset
|
125 |
val result = INVALID_HTML.source().use {
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
126 |
subject.snoop("http://exemple.com", it)
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
127 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
128 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
129 |
assertThat(result).isEmpty() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
130 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
131 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
132 |
@Test |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
133 |
fun testHtmlWithoutManifestReturnsEmpty() {
|
|
455
c743a2f2ca8a
faviKonSnoop: switch input to okio source
Da Risk <da_risk@geekorum.com>
parents:
454
diff
changeset
|
134 |
val result = NO_MANIFEST_HTML.source().use {
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
135 |
subject.snoop("http://exemple.com", it)
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
136 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
137 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
138 |
assertThat(result).isEmpty() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
139 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
140 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
141 |
@Test |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
142 |
fun testHtmlWithInvalidManifestReturnsEmpty() {
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
143 |
subject.okHttpClient = mockk() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
144 |
val requestSlot = slot<Request>() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
145 |
every { subject.okHttpClient.newCall(capture(requestSlot)).execute() } answers {
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
146 |
Response.Builder() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
147 |
.code(200) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
148 |
.request(requestSlot.captured) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
149 |
.protocol(HTTP_1_1) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
150 |
.message("ok")
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
151 |
.body(INVALID_MANIFEST.toResponseBody()) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
152 |
.build() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
153 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
154 |
|
|
455
c743a2f2ca8a
faviKonSnoop: switch input to okio source
Da Risk <da_risk@geekorum.com>
parents:
454
diff
changeset
|
155 |
val result = WITH_MANIFEST_HTML.source().use {
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
156 |
subject.snoop("http://exemple.com", it)
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
157 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
158 |
assertThat(requestSlot.captured.url).isEqualTo("http://exemple.com/static/manifest.json".toHttpUrl())
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
159 |
assertThat(result).isEmpty() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
160 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
161 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
162 |
@Test |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
163 |
fun testHtmlWithSimpleManifestReturnsSimpleResult() {
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
164 |
subject.okHttpClient = mockk() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
165 |
val requestSlot = slot<Request>() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
166 |
every { subject.okHttpClient.newCall(capture(requestSlot)).execute() } answers {
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
167 |
Response.Builder() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
168 |
.code(200) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
169 |
.request(requestSlot.captured) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
170 |
.protocol(HTTP_1_1) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
171 |
.message("ok")
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
172 |
.body(SIMPLE_MANIFEST.toResponseBody()) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
173 |
.build() |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
174 |
} |
|
455
c743a2f2ca8a
faviKonSnoop: switch input to okio source
Da Risk <da_risk@geekorum.com>
parents:
454
diff
changeset
|
175 |
val result = WITH_MANIFEST_HTML.source().use {
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
176 |
subject.snoop("http://exemple.com", it)
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
177 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
178 |
assertThat(requestSlot.captured.url).isEqualTo("http://exemple.com/static/manifest.json".toHttpUrl())
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
179 |
assertThat(result).containsExactly( |
|
454
6398d0a6def5
faviKonSnoop: fix issue when icons don't define sizes attribute
Da Risk <da_risk@geekorum.com>
parents:
453
diff
changeset
|
180 |
FaviconInfo("http://exemple.com/static/images/icon.png")
|
|
453
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
181 |
) |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
182 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
183 |
|
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
184 |
} |
|
ecbc5d274f63
faviKonSnoop: add AppManifestSnooper
Da Risk <da_risk@geekorum.com>
parents:
452
diff
changeset
|
185 |
|
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
186 |
class WebAppManifestParserTest {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
187 |
private lateinit var subject: WebAppManifestParser |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
188 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
189 |
@BeforeTest |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
190 |
fun setUp() {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
191 |
subject = WebAppManifestParser() |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
192 |
} |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
193 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
194 |
@Test |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
195 |
fun parseSimpleWebAppManifest() {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
196 |
val result = subject.parseManifest(SIMPLE_MANIFEST) |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
197 |
assertThat(result!!.icons).containsExactly( |
|
454
6398d0a6def5
faviKonSnoop: fix issue when icons don't define sizes attribute
Da Risk <da_risk@geekorum.com>
parents:
453
diff
changeset
|
198 |
ImageResource("images/icon.png")
|
|
452
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
199 |
) |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
200 |
} |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
201 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
202 |
@Test |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
203 |
fun parseTypicalWebAppManifest() {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
204 |
val result = subject.parseManifest(TYPICAL_MANIFEST) |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
205 |
assertThat(result!!.icons).containsExactly( |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
206 |
ImageResource("icon/lowres.webp",
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
207 |
sizes = "64x64", |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
208 |
type = "image/webp"), |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
209 |
ImageResource("icon/lowres.png",
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
210 |
sizes = "64x64"), |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
211 |
ImageResource("icon/hd_hi",
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
212 |
sizes = "128x128") |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
213 |
) |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
214 |
} |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
215 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
216 |
@Test |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
217 |
fun parseInvalidManifest() {
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
218 |
val result = subject.parseManifest(INVALID_MANIFEST) |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
219 |
assertThat(result).isNull() |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
220 |
} |
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
221 |
|
|
3d0a13d61020
faviKonSnoop: add WebAppManifestParser
Da Risk <da_risk@geekorum.com>
parents:
diff
changeset
|
222 |
} |