diff --git a/MANIFEST.in b/MANIFEST.in index 6fb0a57e..e534b0da 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -545,6 +545,22 @@ include tests/check-fdroid-apk include tests/checkupdates.TestCase include tests/common.TestCase include tests/config.py +include tests/config/antiFeatures.yml +include tests/config/de/antiFeatures.yml +include tests/config/fa/antiFeatures.yml +include tests/config/ic_antifeature_ads.xml +include tests/config/ic_antifeature_disabledalgorithm.xml +include tests/config/ic_antifeature_knownvuln.xml +include tests/config/ic_antifeature_nonfreeadd.xml +include tests/config/ic_antifeature_nonfreeassets.xml +include tests/config/ic_antifeature_nonfreedep.xml +include tests/config/ic_antifeature_nonfreenet.xml +include tests/config/ic_antifeature_nosourcesince.xml +include tests/config/ic_antifeature_nsfw.xml +include tests/config/ic_antifeature_tracking.xml +include tests/config/ic_antifeature_upstreamnonfree.xml +include tests/config/ro/antiFeatures.yml +include tests/config/zh-rCN/antiFeatures.yml include tests/corrupt-featureGraphic.png include tests/deploy.TestCase include tests/dummy-keystore.jks diff --git a/tests/common.TestCase b/tests/common.TestCase index 758b4881..8820004d 100755 --- a/tests/common.TestCase +++ b/tests/common.TestCase @@ -2667,6 +2667,38 @@ class CommonTest(unittest.TestCase): config['smartcardoptions'], ) + def test_load_localized_config(self): + """It should load""" + antiFeatures = fdroidserver.common.load_localized_config('antiFeatures', 'repo') + self.assertEqual( + [ + 'Ads', + 'DisabledAlgorithm', + 'KnownVuln', + 'NSFW', + 'NoSourceSince', + 'NonFreeAdd', + 'NonFreeAssets', + 'NonFreeDep', + 'NonFreeNet', + 'Tracking', + 'UpstreamNonFree', + ], + list(antiFeatures.keys()), + ) + self.assertEqual( + ['de', 'en-US', 'fa', 'ro', 'zh-rCN'], + list(antiFeatures['Ads']['description'].keys()), + ) + self.assertEqual( + ['en-US'], + list(antiFeatures['NoSourceSince']['description'].keys()), + ) + # it should have copied the icon files into place + for v in antiFeatures.values(): + p = Path(os.path.dirname(__file__) + '/repo' + v['icon']['en-US']['name']) + self.assertTrue(p.exists()) + if __name__ == "__main__": os.chdir(os.path.dirname(__file__)) diff --git a/tests/config/antiFeatures.yml b/tests/config/antiFeatures.yml new file mode 100644 index 00000000..e4c1a107 --- /dev/null +++ b/tests/config/antiFeatures.yml @@ -0,0 +1,45 @@ +Ads: + description: This app contains advertising + icon: ic_antifeature_ads.xml + name: Ads +DisabledAlgorithm: + description: This app has a weak security signature + icon: ic_antifeature_disabledalgorithm.xml + name: Signed Using An Unsafe Algorithm +KnownVuln: + description: This app contains a known security vulnerability + icon: ic_antifeature_knownvuln.xml + name: Known Vulnerability +NSFW: + description: This app contains content that should not be publicized or visible + everywhere + icon: ic_antifeature_nsfw.xml + name: NSFW +NoSourceSince: + description: The source code is no longer available, no updates possible. + icon: ic_antifeature_nosourcesince.xml + name: Newer Source Not Available +NonFreeAdd: + description: This app promotes non-free add-ons + icon: ic_antifeature_nonfreeadd.xml + name: Non-Free Addons +NonFreeAssets: + description: This app contains non-free assets + icon: ic_antifeature_nonfreeassets.xml + name: Non-Free Assets +NonFreeDep: + description: This app depends on other non-free apps + icon: ic_antifeature_nonfreedep.xml + name: Non-Free Dependencies +NonFreeNet: + description: This app promotes or depends entirely on a non-free network service + icon: ic_antifeature_nonfreenet.xml + name: Non-Free Network Services +Tracking: + description: This app tracks and reports your activity + icon: ic_antifeature_tracking.xml + name: Tracking +UpstreamNonFree: + description: The upstream source code is not entirely Free + icon: ic_antifeature_upstreamnonfree.xml + name: Upstream Non-Free diff --git a/tests/config/de/antiFeatures.yml b/tests/config/de/antiFeatures.yml new file mode 100644 index 00000000..3053e41a --- /dev/null +++ b/tests/config/de/antiFeatures.yml @@ -0,0 +1,44 @@ +Ads: + description: Diese App enthält Werbung + icon: ic_antifeature_ads.xml + name: Werbung +DisabledAlgorithm: + description: Diese App hat eine schwache Sicherheitssignatur + icon: ic_antifeature_disabledalgorithm.xml + name: Mit einem unsicheren Algorithmus signiert +KnownVuln: + description: Diese App enthält eine bekannte Sicherheitslücke + icon: ic_antifeature_knownvuln.xml + name: Bekannte Sicherheitslücke +NSFW: + description: Diese App enthält Inhalte, die nicht überall veröffentlicht oder sichtbar + sein sollten + icon: ic_antifeature_nsfw.xml + name: NSFW +NoSourceSince: + icon: ic_antifeature_nosourcesince.xml + name: Der Quellcode ist nicht mehr erhältlich, keine Aktualisierungen möglich. +NonFreeAdd: + description: Diese App bewirbt nicht-quelloffene Erweiterungen + icon: ic_antifeature_nonfreeadd.xml + name: Nicht-quelloffene Erweiterungen +NonFreeAssets: + description: Diese App enthält nicht-quelloffene Bestandteile + icon: ic_antifeature_nonfreeassets.xml + name: Nicht-quelloffene Bestandteile +NonFreeDep: + description: Diese App ist abhängig von anderen nicht-quelloffenen Apps + icon: ic_antifeature_nonfreedep.xml + name: Nicht-quelloffene Abhängigkeiten +NonFreeNet: + description: Diese App bewirbt nicht-quelloffene Netzwerkdienste + icon: ic_antifeature_nonfreenet.xml + name: Nicht-quelloffene Netzwerkdienste +Tracking: + description: Diese App verfolgt und versendet Ihre Aktivitäten + icon: ic_antifeature_tracking.xml + name: Tracking +UpstreamNonFree: + description: Der Originalcode ist nicht völlig quelloffen + icon: ic_antifeature_upstreamnonfree.xml + name: Originalcode nicht-quelloffen diff --git a/tests/config/fa/antiFeatures.yml b/tests/config/fa/antiFeatures.yml new file mode 100644 index 00000000..554dcee9 --- /dev/null +++ b/tests/config/fa/antiFeatures.yml @@ -0,0 +1,43 @@ +Ads: + description: این کاره دارای تبلیغات است + icon: ic_antifeature_ads.xml + name: تبلیغات +DisabledAlgorithm: + description: این کاره، امضای امنیتی ضعیفی دارد + icon: ic_antifeature_disabledalgorithm.xml + name: امضا شده با الگوریتمی ناامن +KnownVuln: + description: این کاره، آسیب‌پذیری امنیتی شناخته‌شده‌ای دارد + icon: ic_antifeature_knownvuln.xml + name: آسیب‌پذیری شناخته +NSFW: + description: این کاره محتوایی دارد که نباید عمومی شده یا همه‌حا نمایان باشد + icon: ic_antifeature_nsfw.xml + name: NSFW +NoSourceSince: + icon: ic_antifeature_nosourcesince.xml + name: کد مبدأ دیگر در دسترس نیست. به‌روز رسانی ناممکن است. +NonFreeAdd: + description: این کاره، افزونه‌های ناآزاد را تبلیغ می‌کند + icon: ic_antifeature_nonfreeadd.xml + name: افزونه‌های ناآزاد +NonFreeAssets: + description: این کاره دارای بخش‌های ناآزاد است + icon: ic_antifeature_nonfreeassets.xml + name: بخش‌های ناآزاد +NonFreeDep: + description: این کاره به دیگر کاره‌های ناآزاد وابسته است + icon: ic_antifeature_nonfreedep.xml + name: وابستگی‌های ناآزاد +NonFreeNet: + description: این کاره، خدمات شبکه‌های ناآزاد را ترویج می‌کند + icon: ic_antifeature_nonfreenet.xml + name: خدمات شبکه‌ای ناآزاد +Tracking: + description: این کاره، فعّالیتتان را ردیابی و گزارش می‌کند + icon: ic_antifeature_tracking.xml + name: ردیابی +UpstreamNonFree: + description: کد مبدأ بالادستی کاملاً آزاد نیست + icon: ic_antifeature_upstreamnonfree.xml + name: بالادست ناآزاد diff --git a/tests/config/ic_antifeature_ads.xml b/tests/config/ic_antifeature_ads.xml new file mode 100644 index 00000000..99eb6f5e --- /dev/null +++ b/tests/config/ic_antifeature_ads.xml @@ -0,0 +1,15 @@ + + + + diff --git a/tests/config/ic_antifeature_disabledalgorithm.xml b/tests/config/ic_antifeature_disabledalgorithm.xml new file mode 100644 index 00000000..0b231666 --- /dev/null +++ b/tests/config/ic_antifeature_disabledalgorithm.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/tests/config/ic_antifeature_knownvuln.xml b/tests/config/ic_antifeature_knownvuln.xml new file mode 100644 index 00000000..cfa81345 --- /dev/null +++ b/tests/config/ic_antifeature_knownvuln.xml @@ -0,0 +1,15 @@ + + + + diff --git a/tests/config/ic_antifeature_nonfreeadd.xml b/tests/config/ic_antifeature_nonfreeadd.xml new file mode 100644 index 00000000..adca82ca --- /dev/null +++ b/tests/config/ic_antifeature_nonfreeadd.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/tests/config/ic_antifeature_nonfreeassets.xml b/tests/config/ic_antifeature_nonfreeassets.xml new file mode 100644 index 00000000..20619b4e --- /dev/null +++ b/tests/config/ic_antifeature_nonfreeassets.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/tests/config/ic_antifeature_nonfreedep.xml b/tests/config/ic_antifeature_nonfreedep.xml new file mode 100644 index 00000000..2b37b8d8 --- /dev/null +++ b/tests/config/ic_antifeature_nonfreedep.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/tests/config/ic_antifeature_nonfreenet.xml b/tests/config/ic_antifeature_nonfreenet.xml new file mode 100644 index 00000000..4d726f09 --- /dev/null +++ b/tests/config/ic_antifeature_nonfreenet.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + diff --git a/tests/config/ic_antifeature_nosourcesince.xml b/tests/config/ic_antifeature_nosourcesince.xml new file mode 100644 index 00000000..b524fc42 --- /dev/null +++ b/tests/config/ic_antifeature_nosourcesince.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/tests/config/ic_antifeature_nsfw.xml b/tests/config/ic_antifeature_nsfw.xml new file mode 100644 index 00000000..a1bf3b84 --- /dev/null +++ b/tests/config/ic_antifeature_nsfw.xml @@ -0,0 +1,4 @@ + + + diff --git a/tests/config/ic_antifeature_tracking.xml b/tests/config/ic_antifeature_tracking.xml new file mode 100644 index 00000000..984fe20c --- /dev/null +++ b/tests/config/ic_antifeature_tracking.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/tests/config/ic_antifeature_upstreamnonfree.xml b/tests/config/ic_antifeature_upstreamnonfree.xml new file mode 100644 index 00000000..f3598e67 --- /dev/null +++ b/tests/config/ic_antifeature_upstreamnonfree.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/tests/config/ro/antiFeatures.yml b/tests/config/ro/antiFeatures.yml new file mode 100644 index 00000000..97d61172 --- /dev/null +++ b/tests/config/ro/antiFeatures.yml @@ -0,0 +1,44 @@ +Ads: + description: Aplicația conține reclamă + icon: ic_antifeature_ads.xml + name: Reclame +DisabledAlgorithm: + description: Aplicația are o semnătură slab securizată + icon: ic_antifeature_disabledalgorithm.xml + name: Algoritm nesigur semnătură +KnownVuln: + description: Aplicația conține o vulnerabilitate de securitate cunoscută + icon: ic_antifeature_knownvuln.xml + name: Vulnerabilitate cunoscută +NSFW: + description: Această aplicație conține conținut care nu ar trebui să fie făcut public + sau vizibil peste tot + icon: ic_antifeature_nsfw.xml + name: NSFW +NoSourceSince: + icon: ic_antifeature_nosourcesince.xml + name: Codul sursă nu mai este disponibil, nu mai există posibilitatea de a actualiza. +NonFreeAdd: + description: Aplicația promovează anexe ce nu sunt software liber + icon: ic_antifeature_nonfreeadd.xml + name: Anexe ne-libere +NonFreeAssets: + description: Aceasta aplicație conține resurse ce nu sunt la disponibile la liber + icon: ic_antifeature_nonfreeassets.xml + name: Resurse ne-libere +NonFreeDep: + description: Aplicația depinde de alte aplicații ce nu sunt software liber + icon: ic_antifeature_nonfreedep.xml + name: Dependențe ne-libere +NonFreeNet: + description: Aplicația promovează servicii de rețea ce nu sunt accesibile la liber + icon: ic_antifeature_nonfreenet.xml + name: Servicii de rețea ne-libere +Tracking: + description: Aplicația îți înregistrează și raportează activitatea undeva + icon: ic_antifeature_tracking.xml + name: Urmărire +UpstreamNonFree: + description: Codul sursa originar nu este în totalitatea lui software liber + icon: ic_antifeature_upstreamnonfree.xml + name: Surse ne-libere diff --git a/tests/config/zh-rCN/antiFeatures.yml b/tests/config/zh-rCN/antiFeatures.yml new file mode 100644 index 00000000..a1b287b9 --- /dev/null +++ b/tests/config/zh-rCN/antiFeatures.yml @@ -0,0 +1,43 @@ +Ads: + description: 此应用包含广告 + icon: ic_antifeature_ads.xml + name: 广告 +DisabledAlgorithm: + description: 此应用的安全签名较弱 + icon: ic_antifeature_disabledalgorithm.xml + name: 使用不安全算法签名 +KnownVuln: + description: 此应用包含已知的安全漏洞 + icon: ic_antifeature_knownvuln.xml + name: 含有已知漏洞 +NSFW: + description: 此应用包含不应宣扬或随处可见的内容 + icon: ic_antifeature_nsfw.xml + name: NSFW +NoSourceSince: + icon: ic_antifeature_nosourcesince.xml + name: 源代码不再可用,无法更新。 +NonFreeAdd: + description: 此应用推广非自由的附加组件 + icon: ic_antifeature_nonfreeadd.xml + name: 非自由附加组件 +NonFreeAssets: + description: 此应用包含非自由资源 + icon: ic_antifeature_nonfreeassets.xml + name: 非自由资产 +NonFreeDep: + description: 此应用依赖于其它非自由应用 + icon: ic_antifeature_nonfreedep.xml + name: 非自由依赖项 +NonFreeNet: + description: 此应用推广非自由的网络服务 + icon: ic_antifeature_nonfreenet.xml + name: 非自由网络服务 +Tracking: + description: 此应用会记录并报告你的活动 + icon: ic_antifeature_tracking.xml + name: 跟踪用户 +UpstreamNonFree: + description: 上游源代码不是完全自由的 + icon: ic_antifeature_upstreamnonfree.xml + name: 上游代码非自由 diff --git a/tests/repo/entry.json b/tests/repo/entry.json index 2fb77d2a..f13e622b 100644 --- a/tests/repo/entry.json +++ b/tests/repo/entry.json @@ -3,8 +3,8 @@ "version": 20002, "index": { "name": "/index-v2.json", - "sha256": "07fa4500736ae77fcc6434e4d70ab315b8e018aef52c2afca9f2834ddc73747d", - "size": 32946, + "sha256": "a3c7e88a522a7228937e5c3d760fc239e3578e292035d88478d32fec9ff5eb54", + "size": 52314, "numPackages": 10 }, "diffs": {} diff --git a/tests/repo/index-v2.json b/tests/repo/index-v2.json index 7addd167..b59f17bf 100644 --- a/tests/repo/index-v2.json +++ b/tests/repo/index-v2.json @@ -27,6 +27,477 @@ } ], "timestamp": 1676634233000, + "antiFeatures": { + "Ads": { + "description": { + "de": "Diese App enthält Werbung", + "en-US": "This app contains advertising", + "fa": "این کاره دارای تبلیغات است", + "ro": "Aplicația conține reclamă", + "zh-rCN": "此应用包含广告" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_ads.xml", + "sha256": "b333528573134c5de73484862a1b567a0bdfd6878d183f8500287abadc0ba60e", + "size": 1564 + }, + "en-US": { + "name": "/icons/ic_antifeature_ads.xml", + "sha256": "b333528573134c5de73484862a1b567a0bdfd6878d183f8500287abadc0ba60e", + "size": 1564 + }, + "fa": { + "name": "/icons/ic_antifeature_ads.xml", + "sha256": "b333528573134c5de73484862a1b567a0bdfd6878d183f8500287abadc0ba60e", + "size": 1564 + }, + "ro": { + "name": "/icons/ic_antifeature_ads.xml", + "sha256": "b333528573134c5de73484862a1b567a0bdfd6878d183f8500287abadc0ba60e", + "size": 1564 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_ads.xml", + "sha256": "b333528573134c5de73484862a1b567a0bdfd6878d183f8500287abadc0ba60e", + "size": 1564 + } + }, + "name": { + "de": "Werbung", + "en-US": "Ads", + "fa": "تبلیغات", + "ro": "Reclame", + "zh-rCN": "广告" + } + }, + "DisabledAlgorithm": { + "description": { + "de": "Diese App hat eine schwache Sicherheitssignatur", + "en-US": "This app has a weak security signature", + "fa": "این کاره، امضای امنیتی ضعیفی دارد", + "ro": "Aplicația are o semnătură slab securizată", + "zh-rCN": "此应用的安全签名较弱" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_disabledalgorithm.xml", + "sha256": "94dea590c7c0aa37d351ab62a69fc7eefbc2cdbb84b79df3934c2e9332e1dcfb", + "size": 2313 + }, + "en-US": { + "name": "/icons/ic_antifeature_disabledalgorithm.xml", + "sha256": "94dea590c7c0aa37d351ab62a69fc7eefbc2cdbb84b79df3934c2e9332e1dcfb", + "size": 2313 + }, + "fa": { + "name": "/icons/ic_antifeature_disabledalgorithm.xml", + "sha256": "94dea590c7c0aa37d351ab62a69fc7eefbc2cdbb84b79df3934c2e9332e1dcfb", + "size": 2313 + }, + "ro": { + "name": "/icons/ic_antifeature_disabledalgorithm.xml", + "sha256": "94dea590c7c0aa37d351ab62a69fc7eefbc2cdbb84b79df3934c2e9332e1dcfb", + "size": 2313 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_disabledalgorithm.xml", + "sha256": "94dea590c7c0aa37d351ab62a69fc7eefbc2cdbb84b79df3934c2e9332e1dcfb", + "size": 2313 + } + }, + "name": { + "de": "Mit einem unsicheren Algorithmus signiert", + "en-US": "Signed Using An Unsafe Algorithm", + "fa": "امضا شده با الگوریتمی ناامن", + "ro": "Algoritm nesigur semnătură", + "zh-rCN": "使用不安全算法签名" + } + }, + "KnownVuln": { + "description": { + "de": "Diese App enthält eine bekannte Sicherheitslücke", + "en-US": "This app contains a known security vulnerability", + "fa": "این کاره، آسیب‌پذیری امنیتی شناخته‌شده‌ای دارد", + "ro": "Aplicația conține o vulnerabilitate de securitate cunoscută", + "zh-rCN": "此应用包含已知的安全漏洞" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_knownvuln.xml", + "sha256": "743ddcad0120896b03bf62bca9b3b9902878ac9366959a0b77b2c50beeb37f9d", + "size": 1415 + }, + "en-US": { + "name": "/icons/ic_antifeature_knownvuln.xml", + "sha256": "743ddcad0120896b03bf62bca9b3b9902878ac9366959a0b77b2c50beeb37f9d", + "size": 1415 + }, + "fa": { + "name": "/icons/ic_antifeature_knownvuln.xml", + "sha256": "743ddcad0120896b03bf62bca9b3b9902878ac9366959a0b77b2c50beeb37f9d", + "size": 1415 + }, + "ro": { + "name": "/icons/ic_antifeature_knownvuln.xml", + "sha256": "743ddcad0120896b03bf62bca9b3b9902878ac9366959a0b77b2c50beeb37f9d", + "size": 1415 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_knownvuln.xml", + "sha256": "743ddcad0120896b03bf62bca9b3b9902878ac9366959a0b77b2c50beeb37f9d", + "size": 1415 + } + }, + "name": { + "de": "Bekannte Sicherheitslücke", + "en-US": "Known Vulnerability", + "fa": "آسیب‌پذیری شناخته", + "ro": "Vulnerabilitate cunoscută", + "zh-rCN": "含有已知漏洞" + } + }, + "NSFW": { + "description": { + "de": "Diese App enthält Inhalte, die nicht überall veröffentlicht oder sichtbar sein sollten", + "en-US": "This app contains content that should not be publicized or visible everywhere", + "fa": "این کاره محتوایی دارد که نباید عمومی شده یا همه‌حا نمایان باشد", + "ro": "Această aplicație conține conținut care nu ar trebui să fie făcut public sau vizibil peste tot", + "zh-rCN": "此应用包含不应宣扬或随处可见的内容" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_nsfw.xml", + "sha256": "acab2a7a846700529cd7f2b7a7980f7d04a291f22db8434f3e966f7350ed1465", + "size": 871 + }, + "en-US": { + "name": "/icons/ic_antifeature_nsfw.xml", + "sha256": "acab2a7a846700529cd7f2b7a7980f7d04a291f22db8434f3e966f7350ed1465", + "size": 871 + }, + "fa": { + "name": "/icons/ic_antifeature_nsfw.xml", + "sha256": "acab2a7a846700529cd7f2b7a7980f7d04a291f22db8434f3e966f7350ed1465", + "size": 871 + }, + "ro": { + "name": "/icons/ic_antifeature_nsfw.xml", + "sha256": "acab2a7a846700529cd7f2b7a7980f7d04a291f22db8434f3e966f7350ed1465", + "size": 871 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_nsfw.xml", + "sha256": "acab2a7a846700529cd7f2b7a7980f7d04a291f22db8434f3e966f7350ed1465", + "size": 871 + } + }, + "name": { + "de": "NSFW", + "en-US": "NSFW", + "fa": "NSFW", + "ro": "NSFW", + "zh-rCN": "NSFW" + } + }, + "NoSourceSince": { + "description": { + "en-US": "The source code is no longer available, no updates possible." + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_nosourcesince.xml", + "sha256": "69c880b075967fe9598c777e18d600e1c1612bf061111911421fe8f6b9d88d4f", + "size": 1102 + }, + "en-US": { + "name": "/icons/ic_antifeature_nosourcesince.xml", + "sha256": "69c880b075967fe9598c777e18d600e1c1612bf061111911421fe8f6b9d88d4f", + "size": 1102 + }, + "fa": { + "name": "/icons/ic_antifeature_nosourcesince.xml", + "sha256": "69c880b075967fe9598c777e18d600e1c1612bf061111911421fe8f6b9d88d4f", + "size": 1102 + }, + "ro": { + "name": "/icons/ic_antifeature_nosourcesince.xml", + "sha256": "69c880b075967fe9598c777e18d600e1c1612bf061111911421fe8f6b9d88d4f", + "size": 1102 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_nosourcesince.xml", + "sha256": "69c880b075967fe9598c777e18d600e1c1612bf061111911421fe8f6b9d88d4f", + "size": 1102 + } + }, + "name": { + "de": "Der Quellcode ist nicht mehr erhältlich, keine Aktualisierungen möglich.", + "en-US": "Newer Source Not Available", + "fa": "کد مبدأ دیگر در دسترس نیست. به‌روز رسانی ناممکن است.", + "ro": "Codul sursă nu mai este disponibil, nu mai există posibilitatea de a actualiza.", + "zh-rCN": "源代码不再可用,无法更新。" + } + }, + "NonFreeAdd": { + "description": { + "de": "Diese App bewirbt nicht-quelloffene Erweiterungen", + "en-US": "This app promotes non-free add-ons", + "fa": "این کاره، افزونه‌های ناآزاد را تبلیغ می‌کند", + "ro": "Aplicația promovează anexe ce nu sunt software liber", + "zh-rCN": "此应用推广非自由的附加组件" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_nonfreeadd.xml", + "sha256": "a1d1f2070bdaabf80ca5a55bccef98c82031ea2f31cc040be5ec009f44ddeef2", + "size": 1846 + }, + "en-US": { + "name": "/icons/ic_antifeature_nonfreeadd.xml", + "sha256": "a1d1f2070bdaabf80ca5a55bccef98c82031ea2f31cc040be5ec009f44ddeef2", + "size": 1846 + }, + "fa": { + "name": "/icons/ic_antifeature_nonfreeadd.xml", + "sha256": "a1d1f2070bdaabf80ca5a55bccef98c82031ea2f31cc040be5ec009f44ddeef2", + "size": 1846 + }, + "ro": { + "name": "/icons/ic_antifeature_nonfreeadd.xml", + "sha256": "a1d1f2070bdaabf80ca5a55bccef98c82031ea2f31cc040be5ec009f44ddeef2", + "size": 1846 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_nonfreeadd.xml", + "sha256": "a1d1f2070bdaabf80ca5a55bccef98c82031ea2f31cc040be5ec009f44ddeef2", + "size": 1846 + } + }, + "name": { + "de": "Nicht-quelloffene Erweiterungen", + "en-US": "Non-Free Addons", + "fa": "افزونه‌های ناآزاد", + "ro": "Anexe ne-libere", + "zh-rCN": "非自由附加组件" + } + }, + "NonFreeAssets": { + "description": { + "de": "Diese App enthält nicht-quelloffene Bestandteile", + "en-US": "This app contains non-free assets", + "fa": "این کاره دارای بخش‌های ناآزاد است", + "ro": "Aceasta aplicație conține resurse ce nu sunt la disponibile la liber", + "zh-rCN": "此应用包含非自由资源" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_nonfreeassets.xml", + "sha256": "b39fe384386fc67fb30fa2f91402594110e2e42c961d76adc93141b8bd774008", + "size": 1784 + }, + "en-US": { + "name": "/icons/ic_antifeature_nonfreeassets.xml", + "sha256": "b39fe384386fc67fb30fa2f91402594110e2e42c961d76adc93141b8bd774008", + "size": 1784 + }, + "fa": { + "name": "/icons/ic_antifeature_nonfreeassets.xml", + "sha256": "b39fe384386fc67fb30fa2f91402594110e2e42c961d76adc93141b8bd774008", + "size": 1784 + }, + "ro": { + "name": "/icons/ic_antifeature_nonfreeassets.xml", + "sha256": "b39fe384386fc67fb30fa2f91402594110e2e42c961d76adc93141b8bd774008", + "size": 1784 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_nonfreeassets.xml", + "sha256": "b39fe384386fc67fb30fa2f91402594110e2e42c961d76adc93141b8bd774008", + "size": 1784 + } + }, + "name": { + "de": "Nicht-quelloffene Bestandteile", + "en-US": "Non-Free Assets", + "fa": "بخش‌های ناآزاد", + "ro": "Resurse ne-libere", + "zh-rCN": "非自由资产" + } + }, + "NonFreeDep": { + "description": { + "de": "Diese App ist abhängig von anderen nicht-quelloffenen Apps", + "en-US": "This app depends on other non-free apps", + "fa": "این کاره به دیگر کاره‌های ناآزاد وابسته است", + "ro": "Aplicația depinde de alte aplicații ce nu sunt software liber", + "zh-rCN": "此应用依赖于其它非自由应用" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_nonfreedep.xml", + "sha256": "c1b4052a8f58125b2120d9ca07adb725d47bfa7cfcea80c4d6bbbc432b5cb83a", + "size": 1396 + }, + "en-US": { + "name": "/icons/ic_antifeature_nonfreedep.xml", + "sha256": "c1b4052a8f58125b2120d9ca07adb725d47bfa7cfcea80c4d6bbbc432b5cb83a", + "size": 1396 + }, + "fa": { + "name": "/icons/ic_antifeature_nonfreedep.xml", + "sha256": "c1b4052a8f58125b2120d9ca07adb725d47bfa7cfcea80c4d6bbbc432b5cb83a", + "size": 1396 + }, + "ro": { + "name": "/icons/ic_antifeature_nonfreedep.xml", + "sha256": "c1b4052a8f58125b2120d9ca07adb725d47bfa7cfcea80c4d6bbbc432b5cb83a", + "size": 1396 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_nonfreedep.xml", + "sha256": "c1b4052a8f58125b2120d9ca07adb725d47bfa7cfcea80c4d6bbbc432b5cb83a", + "size": 1396 + } + }, + "name": { + "de": "Nicht-quelloffene Abhängigkeiten", + "en-US": "Non-Free Dependencies", + "fa": "وابستگی‌های ناآزاد", + "ro": "Dependențe ne-libere", + "zh-rCN": "非自由依赖项" + } + }, + "NonFreeNet": { + "description": { + "de": "Diese App bewirbt nicht-quelloffene Netzwerkdienste", + "en-US": "This app promotes or depends entirely on a non-free network service", + "fa": "این کاره، خدمات شبکه‌های ناآزاد را ترویج می‌کند", + "ro": "Aplicația promovează servicii de rețea ce nu sunt accesibile la liber", + "zh-rCN": "此应用推广非自由的网络服务" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_nonfreenet.xml", + "sha256": "7fff45c847ed2ecc94e85ba2341685c8f113fa5fdf7267a25637dc38ee0275f6", + "size": 3038 + }, + "en-US": { + "name": "/icons/ic_antifeature_nonfreenet.xml", + "sha256": "7fff45c847ed2ecc94e85ba2341685c8f113fa5fdf7267a25637dc38ee0275f6", + "size": 3038 + }, + "fa": { + "name": "/icons/ic_antifeature_nonfreenet.xml", + "sha256": "7fff45c847ed2ecc94e85ba2341685c8f113fa5fdf7267a25637dc38ee0275f6", + "size": 3038 + }, + "ro": { + "name": "/icons/ic_antifeature_nonfreenet.xml", + "sha256": "7fff45c847ed2ecc94e85ba2341685c8f113fa5fdf7267a25637dc38ee0275f6", + "size": 3038 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_nonfreenet.xml", + "sha256": "7fff45c847ed2ecc94e85ba2341685c8f113fa5fdf7267a25637dc38ee0275f6", + "size": 3038 + } + }, + "name": { + "de": "Nicht-quelloffene Netzwerkdienste", + "en-US": "Non-Free Network Services", + "fa": "خدمات شبکه‌ای ناآزاد", + "ro": "Servicii de rețea ne-libere", + "zh-rCN": "非自由网络服务" + } + }, + "Tracking": { + "description": { + "de": "Diese App verfolgt und versendet Ihre Aktivitäten", + "en-US": "This app tracks and reports your activity", + "fa": "این کاره، فعّالیتتان را ردیابی و گزارش می‌کند", + "ro": "Aplicația îți înregistrează și raportează activitatea undeva", + "zh-rCN": "此应用会记录并报告你的活动" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_tracking.xml", + "sha256": "4779337b5b0a12c4b4a8a83d0d8a994a2477460db702784df4c8d3e3730be961", + "size": 2493 + }, + "en-US": { + "name": "/icons/ic_antifeature_tracking.xml", + "sha256": "4779337b5b0a12c4b4a8a83d0d8a994a2477460db702784df4c8d3e3730be961", + "size": 2493 + }, + "fa": { + "name": "/icons/ic_antifeature_tracking.xml", + "sha256": "4779337b5b0a12c4b4a8a83d0d8a994a2477460db702784df4c8d3e3730be961", + "size": 2493 + }, + "ro": { + "name": "/icons/ic_antifeature_tracking.xml", + "sha256": "4779337b5b0a12c4b4a8a83d0d8a994a2477460db702784df4c8d3e3730be961", + "size": 2493 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_tracking.xml", + "sha256": "4779337b5b0a12c4b4a8a83d0d8a994a2477460db702784df4c8d3e3730be961", + "size": 2493 + } + }, + "name": { + "de": "Tracking", + "en-US": "Tracking", + "fa": "ردیابی", + "ro": "Urmărire", + "zh-rCN": "跟踪用户" + } + }, + "UpstreamNonFree": { + "description": { + "de": "Der Originalcode ist nicht völlig quelloffen", + "en-US": "The upstream source code is not entirely Free", + "fa": "کد مبدأ بالادستی کاملاً آزاد نیست", + "ro": "Codul sursa originar nu este în totalitatea lui software liber", + "zh-rCN": "上游源代码不是完全自由的" + }, + "icon": { + "de": { + "name": "/icons/ic_antifeature_upstreamnonfree.xml", + "sha256": "06a9af843ff56ecd7a270f98c0b19b3154edf3ffa854e6d50a84ef00d0ce1a86", + "size": 1442 + }, + "en-US": { + "name": "/icons/ic_antifeature_upstreamnonfree.xml", + "sha256": "06a9af843ff56ecd7a270f98c0b19b3154edf3ffa854e6d50a84ef00d0ce1a86", + "size": 1442 + }, + "fa": { + "name": "/icons/ic_antifeature_upstreamnonfree.xml", + "sha256": "06a9af843ff56ecd7a270f98c0b19b3154edf3ffa854e6d50a84ef00d0ce1a86", + "size": 1442 + }, + "ro": { + "name": "/icons/ic_antifeature_upstreamnonfree.xml", + "sha256": "06a9af843ff56ecd7a270f98c0b19b3154edf3ffa854e6d50a84ef00d0ce1a86", + "size": 1442 + }, + "zh-rCN": { + "name": "/icons/ic_antifeature_upstreamnonfree.xml", + "sha256": "06a9af843ff56ecd7a270f98c0b19b3154edf3ffa854e6d50a84ef00d0ce1a86", + "size": 1442 + } + }, + "name": { + "de": "Originalcode nicht-quelloffen", + "en-US": "Upstream Non-Free", + "fa": "بالادست ناآزاد", + "ro": "Surse ne-libere", + "zh-rCN": "上游代码非自由" + } + } + }, "requests": { "install": [ "org.adaway" diff --git a/tests/run-tests b/tests/run-tests index e076359a..49acb5aa 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -261,7 +261,12 @@ REPOROOT=`create_test_dir` GNUPGHOME=$REPOROOT/gnupghome cd $REPOROOT fdroid_init_with_prebuilt_keystore -cp -a $WORKSPACE/tests/metadata $WORKSPACE/tests/repo $WORKSPACE/tests/stats $REPOROOT/ +cp -a \ + $WORKSPACE/tests/config \ + $WORKSPACE/tests/metadata \ + $WORKSPACE/tests/repo \ + $WORKSPACE/tests/stats \ + $REPOROOT/ cp -a $WORKSPACE/tests/gnupghome $GNUPGHOME chmod 0700 $GNUPGHOME echo "install_list: org.adaway" >> config.yml