From 8caf46a5be2355463565942e1f17c6f54d747a3b Mon Sep 17 00:00:00 2001
From: aguspe <agustin.pe94@gmail.com>
Date: Mon, 20 May 2024 17:40:38 +0200
Subject: [PATCH] Add permissions examples and update the log examples

---
 examples/ruby/spec/browsers/chrome_spec.rb    | 29 ++++++++++++++-----
 .../webdriver/browsers/chrome.en.md           |  4 +--
 .../webdriver/browsers/chrome.ja.md           |  4 +--
 .../webdriver/browsers/chrome.pt-br.md        |  4 +--
 .../webdriver/browsers/chrome.zh-cn.md        |  4 +--
 5 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/examples/ruby/spec/browsers/chrome_spec.rb b/examples/ruby/spec/browsers/chrome_spec.rb
index 96063d771003..c15f4d88a978 100644
--- a/examples/ruby/spec/browsers/chrome_spec.rb
+++ b/examples/ruby/spec/browsers/chrome_spec.rb
@@ -133,15 +133,25 @@
         'download_throughput' => 200,
         'upload_throughput' => 200)
     end
-  end
 
-  it 'gets the browser logs' do
-    @driver = Selenium::WebDriver.for :chrome
-    @driver.navigate.to 'https://www.selenium.dev/selenium/web/'
-    sleep 1
-    logs = @driver.logs.get(:browser)
+    it 'gets the browser logs' do
+      @driver = Selenium::WebDriver.for :chrome
+      @driver.navigate.to 'https://www.selenium.dev/selenium/web/'
+      sleep 1
+      logs = @driver.logs.get(:browser)
+
+      expect(logs.first.message).to include 'Failed to load resource'
+    end
 
-    expect(logs.first.message).to include 'Failed to load resource'
+    it 'sets permissions' do
+      @driver = Selenium::WebDriver.for :chrome
+      @driver.navigate.to 'https://www.selenium.dev/selenium/web/'
+      @driver.add_permission('camera', 'denied')
+      @driver.add_permissions('clipboard-read' => 'denied', 'clipboard-write' => 'prompt')
+      expect(permission('camera')).to eq('denied')
+      expect(permission('clipboard-read')).to eq('denied')
+      expect(permission('clipboard-write')).to eq('prompt')
+    end
   end
 
   def driver_finder
@@ -151,4 +161,9 @@ def driver_finder
     ENV['CHROMEDRIVER_BIN'] = finder.driver_path
     ENV['CHROME_BIN'] = finder.browser_path
   end
+
+  def permission(name)
+    @driver.execute_async_script('callback = arguments[arguments.length - 1];' \
+                                 'callback(navigator.permissions.query({name: arguments[0]}));', name)['state']
+  end
 end
diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md
index db15007893c0..faced2ff9b09 100644
--- a/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md
+++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.en.md
@@ -428,7 +428,7 @@ You can simulate various network conditions.
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L142" >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L141" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
@@ -451,7 +451,7 @@ You can simulate various network conditions.
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< badge-code >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L149-L150" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md
index 6aefd8701a82..c5499b8f7f2b 100644
--- a/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md
+++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.ja.md
@@ -434,7 +434,7 @@ please refer to the
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L142" >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L141" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
@@ -457,7 +457,7 @@ please refer to the
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< badge-code >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L149-L150" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md
index 30a3768108ae..fc9f45ada9bb 100644
--- a/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md
+++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.pt-br.md
@@ -431,7 +431,7 @@ please refer to the
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L142" >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L141" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
@@ -454,7 +454,7 @@ please refer to the
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< badge-code >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L149-L150" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
diff --git a/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md b/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md
index bfafbb7b445f..4c64498c63bf 100644
--- a/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md
+++ b/website_and_docs/content/documentation/webdriver/browsers/chrome.zh-cn.md
@@ -430,7 +430,7 @@ please refer to the
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L142" >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L141" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}
@@ -453,7 +453,7 @@ please refer to the
 {{< badge-code >}}
 {{< /tab >}}
 {{< tab header="Ruby" >}}
-{{< badge-code >}}
+{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L149-L150" >}}
 {{< /tab >}}
 {{< tab header="JavaScript" >}}
 {{< badge-code >}}