From 42939cf7a9504470ce3e21ed6fcea040b58b503e Mon Sep 17 00:00:00 2001 From: Romain Date: Thu, 27 Feb 2020 14:50:55 +0000 Subject: [PATCH] Add support for ChromeOS theme --- README.md | 1 + ego_description.txt | 1 + src/modules/Variants.js | 2 +- tests/ChromeOS.js | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 tests/ChromeOS.js diff --git a/README.md b/README.md index 55520c4..e0144dd 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ These themes have been tested and work: - Adwaita - Arc - Canta +- ChromeOS - Flat-Remix-GTK - HighContrast - Layan diff --git a/ego_description.txt b/ego_description.txt index 71b6a5c..44f4154 100644 --- a/ego_description.txt +++ b/ego_description.txt @@ -5,6 +5,7 @@ These themes have been tested and work: - Adwaita - Arc - Canta +- ChromeOS - Flat-Remix-GTK - HighContrast - Layan diff --git a/src/modules/Variants.js b/src/modules/Variants.js index b5aab43..4390850 100644 --- a/src/modules/Variants.js +++ b/src/modules/Variants.js @@ -56,7 +56,7 @@ var Variants = class { variants.set('day', name.replace(/-Dark(?!er)/, '')); variants.set('night', variants.get('day').replace(/Arc(-Darker)?/, 'Arc-Dark')); } - else if ( name.match(/^(Canta|Materia).*-compact/) ) { + else if ( name.match(/^(Canta|ChromeOS|Materia).*-compact/) ) { variants.set('day', name.replace('-dark', '')); variants.set('night', variants.get('day').replace(/(-light)?-compact/, '-dark-compact')); } diff --git a/tests/ChromeOS.js b/tests/ChromeOS.js new file mode 100644 index 0000000..a50c706 --- /dev/null +++ b/tests/ChromeOS.js @@ -0,0 +1,40 @@ +/* +Night Theme Switcher Gnome Shell extension + +Copyright (C) 2020 Romain Vigier + +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . +*/ + +const test = require('ava'); +const { Variants } = require('./_variants'); + +['', '-compact'].forEach(size => { + test(`ChromeOS${size}`, t => { + const variants = Variants.guess_from(`ChromeOS${size}`); + t.is(variants.get('day'), `ChromeOS${size}`); + t.is(variants.get('night'), `ChromeOS-dark${size}`); + }); + + test(`ChromeOS-dark${size}`, t => { + const variants = Variants.guess_from(`ChromeOS-dark${size}`); + t.is(variants.get('day'), `ChromeOS${size}`); + t.is(variants.get('night'), `ChromeOS-dark${size}`); + }); + + test(`ChromeOS-light${size}`, t => { + const variants = Variants.guess_from(`ChromeOS-light${size}`); + t.is(variants.get('day'), `ChromeOS-light${size}`); + t.is(variants.get('night'), `ChromeOS-dark${size}`); + }); +})