From 66234b14bcb4c040d08944eceb17620749fc957e Mon Sep 17 00:00:00 2001
From: Cory McWilliams <cory@unprompted.com>
Date: Wed, 16 Apr 2025 12:32:34 -0400
Subject: [PATCH] test: Add some coverage of storing and resetting permissions
 by clicking the approve/deny/remember/reset buttons.

---
 core/client.js    |  2 ++
 tools/autotest.py | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/core/client.js b/core/client.js
index b3e97624..0ca53684 100644
--- a/core/client.js
+++ b/core/client.js
@@ -266,6 +266,7 @@ class TfNavigationElement extends LitElement {
 									<button
 										@click=${() => this.reset_permission(key)}
 										class="w3-button w3-red"
+										id=${'permission_reset:' + key}
 									>
 										Reset
 									</button>
@@ -275,6 +276,7 @@ class TfNavigationElement extends LitElement {
 						<button
 							@click=${() => (this.show_permissions = false)}
 							class="w3-button w3-blue"
+							id="permissions_close"
 						>
 							Close
 						</button>
diff --git a/tools/autotest.py b/tools/autotest.py
index cc730f01..0c60a907 100755
--- a/tools/autotest.py
+++ b/tools/autotest.py
@@ -174,7 +174,26 @@ try:
 	select(driver, ['#document', 'frame', '=ssb'], ('click',))
 	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#edit'], ('send_keys', 'Hello, world!'))
 	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
+	select(driver, ['//label[text()="Remember this decision."]'], ('click',))
+	select(driver, ['//button[text()="❌ Deny"]'], ('click',))
+	driver.switch_to.alert.accept()
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
+	driver.switch_to.alert.accept()
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
+	select(driver, ['tf-navigation', 'shadow_root', '=🎛️'], ('click',))
+	select(driver, ['tf-navigation', 'shadow_root', '#permission_reset:ssb_append'], ('click',))
+	select(driver, ['tf-navigation', 'shadow_root', '#permissions_close'], ('click',))
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
+	select(driver, ['//button[text()="❌ Deny"]'], ('click',))
+	driver.switch_to.alert.accept()
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
 	select(driver, ['//button[text()="✅ Allow"]'], ('click',))
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#edit'], ('send_keys', 'Hello, world 2!'))
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
+	select(driver, ['//label[text()="Remember this decision."]'], ('click',))
+	select(driver, ['//button[text()="✅ Allow"]'], ('click',))
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#edit'], ('send_keys', 'Hello, world 3!'))
+	select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
 
 	select(driver, ['tf-navigation', 'shadow_root', '#identity'], ('click',))
 	select(driver, ['tf-navigation', 'shadow_root', '#logout'], ('click',))