Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add user agent control #13

Merged
merged 2 commits into from
Aug 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/Toppoki.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};
};
10 changes: 7 additions & 3 deletions src/Toppoki.purs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand All @@ -248,7 +248,10 @@ 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

foreign import puppeteer :: Puppeteer
foreign import _launch :: forall options. FU.Fn1 options (Effect (Promise Browser))
Expand All @@ -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))
7 changes: 7 additions & 0 deletions test/Main.purs
Original file line number Diff line number Diff line change
Expand Up @@ -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