From 1c9e5ed2105f8469df296aef4f16acb412142efc Mon Sep 17 00:00:00 2001 From: Alexander Tesfamichael Date: Sun, 18 Aug 2019 15:51:54 +0200 Subject: [PATCH 1/2] Add setUserAgent function --- src/Toppoki.js | 6 ++++++ src/Toppoki.purs | 4 ++++ test/Main.purs | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/src/Toppoki.js b/src/Toppoki.js index b28092b..a9ea30a 100644 --- a/src/Toppoki.js +++ b/src/Toppoki.js @@ -133,3 +133,9 @@ exports._keyboardUp = function(string, options, page) { return page.keyboard.up(string, options); }; }; + +exports._setUserAgent = function(string, page) { + return function() { + return page.setUserAgent(string); + }; +}; diff --git a/src/Toppoki.purs b/src/Toppoki.purs index 060c291..c62df1e 100644 --- a/src/Toppoki.purs +++ b/src/Toppoki.purs @@ -250,6 +250,9 @@ keyboardUp :: forall options trash -> Aff Unit keyboardUp key options page = runPromiseAffE3 _keyboardUp key options page +setUserAgent :: String -> Page -> Aff Unit +setUserAgent = runPromiseAffE2 _setUserAgent + foreign import puppeteer :: Puppeteer foreign import _launch :: forall options. FU.Fn1 options (Effect (Promise Browser)) foreign import _newPage :: FU.Fn1 Browser (Effect (Promise Page)) @@ -273,3 +276,4 @@ foreign import _keyboardPress :: forall options. FU.Fn3 KeyboardKey options Page foreign import _keyboardSendCharacter :: FU.Fn2 String Page (Effect (Promise Unit)) foreign import _keyboardType :: forall options. FU.Fn3 String options Page (Effect (Promise Unit)) foreign import _keyboardUp :: forall options. FU.Fn3 KeyboardKey options Page (Effect (Promise Unit)) +foreign import _setUserAgent :: FU.Fn2 String Page (Effect (Promise Unit)) diff --git a/test/Main.purs b/test/Main.purs index d931150..b73bc90 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -148,3 +148,10 @@ tests dir = runTest do Left _ -> throwError $ error "failed to read test input element value" Right value -> Assert.equal "∀" value T.close browser + + test "setting the user agent successfully completes" do + browser <- T.launch {} + page <- T.newPage browser + T.setUserAgent "Toppokki yum!" page + T.close browser + From 8f7deea4c798d86127a2c1bbce61d8e59cea963e Mon Sep 17 00:00:00 2001 From: Alexander Tesfamichael Date: Sun, 18 Aug 2019 15:58:36 +0200 Subject: [PATCH 2/2] Eta reduction of three functions --- src/Toppoki.purs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Toppoki.purs b/src/Toppoki.purs index c62df1e..b446150 100644 --- a/src/Toppoki.purs +++ b/src/Toppoki.purs @@ -212,7 +212,7 @@ keyboardDown :: forall options trash -> { | options } -> Page -> Aff Unit -keyboardDown key options page = runPromiseAffE3 _keyboardDown key options page +keyboardDown = runPromiseAffE3 _keyboardDown -- | Trigger a single keypress. Shortcut for `keyboard.down` and `keyboard.up`. keyboardPress @@ -229,7 +229,7 @@ keyboardPress = runPromiseAffE3 _keyboardPress -- | Dispatches a keypress and input event. This does not send a keydown or keyup event. keyboardSendCharacter :: String -> Page -> Aff Unit -keyboardSendCharacter char page = runPromiseAffE2 _keyboardSendCharacter char page +keyboardSendCharacter = runPromiseAffE2 _keyboardSendCharacter -- | Sends a keydown, keypress/input, and keyup event for each character in the text. -- | To press a special key, like Control or ArrowDown, use keyboard.press. @@ -248,7 +248,7 @@ keyboardUp :: forall options trash -> { | options } -> Page -> Aff Unit -keyboardUp key options page = runPromiseAffE3 _keyboardUp key options page +keyboardUp = runPromiseAffE3 _keyboardUp setUserAgent :: String -> Page -> Aff Unit setUserAgent = runPromiseAffE2 _setUserAgent