A hubot adapter event listener that sits inbetween hubot and the desired hubot adapter.
An extension to Bumblebee to support native and hybrid IOS apps.
johnhammerlund/BumblebeeAndroid 1
An extension to Bumblebee to support native and hybrid Android apps.
This is only for testing github API
johnhammerlund/appium-dot-exe 0
Windows GUI for Appium
johnhammerlund/awesome-swift 0
A collaborative list of awesome Swift libraries and resources. Feel free to contribute!
A layer on top of the Selenium browser automation library.
johnhammerlund/card.io-iOS-source 0
The open-source code for the card.io-iOS-SDK: provides fast, easy credit card scanning in mobile apps
johnhammerlund/CocoaLumberjack 0
A fast & simple, yet powerful & flexible logging framework for Mac and iOS
Robust Swift networking for web APIs
PR opened mindbody/Conduit
Summary
Prepare for release v1.0.0
Implementation
- Fix references where iOS 8.0 was still being used.
pr created time in 24 days
push eventmindbody/Conduit
commit sha d0fd17e6b45016c0b052fac9c415e4a008636b04
Update README
push time in 24 days
startedjohnhammerlund/hubot-proxy
started time in a month
issue commentBumblebee/Bumblebee
ParentPage cannot find element after browser window is refreshed.
@RafalDardzinski If you can provide a link to a github repo or zip file with code that I can run to reproduce the issue, I am happy to take a look at it.
comment created time in a month
issue openedBumblebee/Bumblebee
ParentPage cannot find element after browser window is refreshed.
I have an issue with refreshing browser page. The problem is quite complex, so please bear with me.
The web application I work on has resource versioning feature and it's possible to view data from specific version of a resource by providing its id in url (each new version of a resource has unique id). I have two concurrency test scenarios that I need to cover.
During the tests I always have two browser windows open:
- Browser 1 is for asserts.
- Browser 2 is for doing things "behind the scenes" (like modifying resource when it is viewed by Browser 1).
Test 1
Given I have two browser windows opened on a page that displays details of latest version of the same resource.
- Browser 2 clicks on Edit button modifies the resource and saves.
- Browser 1 refreshes the page.
Expected result: Since url in Browser 1 is not leading to the latest version of a resource anymore, a "historic" version of a page is rendered.
I have two block models: ResourcePage for viewing latest version of a resource and ResourceHistoricPage for viewing historic version of a resource. In order to test the scenario above, when Browser 1 refreshes I need to switch context from ResourcePage to ResourceHistoricPage. I've written a simple helper method that allows me to do so:
private static TRefreshedPageBlock RefreshPage<TRefreshedPageBlock>(BaseBlock pageToRefresh) where TRefreshedPageBlock : BaseBlock
{
pageToRefresh.Session.Refresh();
return pageToRefresh.Session.CurrentBlock<TRefreshedPageBlock>();
}
Test 2
Given I have two browser windows opened on a page that displays details of latest version of the same resource.
- Browser 2 clicks on Edit button modifies the resource and saves.
- Browser 1 tries to modify the resource by clicking several available buttons (e.g. Edit or Delete).
Expected result: A toast message stating there's a new version of a file is shown for each attempt to click on a button.
Toasts are managed by ParentPage which is shared by both ResourcePage and ResourceHistoricPage. The mechanism is implemented like so:
public class ParentPage : Page
{
public Toast Toast => new Toast(this);
public void RemoveToasts()
{
while (FindElements(By.ClassName("toast")).Any())
{
Toast.Tag.Click();
}
}
}
Below the implementation of the Toast element.
public class Toast : WebBlock
{
private static readonly By Selector = By.ClassName("toast");
public string Message { get; }
public Toast(ParentPage parentPage)
: base(parentPage, Selector)
{
Wait.Until(ExpectedConditions.ElementIsVisible(Selector));
Message = FindElement(By.ClassName("toast-message")).Text;
}
}
The test follows the following pattern:
- Both browser windows start on the same page (ResourcePage).
- Browser 2 modifies the resource.
- Browser 1: for each button that modifies the resource on a page:
- Click on a button.
- Check if ResourcePage#Parent#Toast#Message is as expected.
- Remove toast using ResourcePage#Parent#RemoveToasts();
The problem
Both of these tests work correctly when run in isolation. However, every time I run Test 1 before Test 2, Test 2 fails when calling ResourcePage#ParentPage#RemoveToasts() with an error saying that it cannot find element with class toast. Interestingly enough, the assert on Toast#Message passes, the problem is with trying to remove the toasts. The toast itself gets rendered correctly.
Before each test both browsers navigate to the ResourcePage and variable under test is reassigned, so there shoudln't be any problems with invalid context references.
We discovered that the workaround for this issue would be to close the refreshed tab on Browser 1 and open a new one. However, I'm curious whether the problem is in our implementation of refresh mechanism or is it a bug within Bumblebee?
created time in a month
push eventmindbody/Conduit
commit sha 12fe83187edcb6e4afd5e9e525dcf9d4d639e8e7
Release 0.22.0 (#157) Release 0.22.0
push time in 2 months
push eventmindbody/Conduit
commit sha 6aa00e321e00eb69dc45bae2a3f2e03bfa1769ca
Remove deprecated types (#156) ### Summary - Remove deprecated types: `BearerOAuth2Token`, `OAuth2TokenAES256CBCCipher`, and `OAuth2TokenDiskStore` - Set `IPHONEOS_DEPLOYMENT_TARGET` to 9.0 for all Conduit targets
push time in 2 months
PR merged mindbody/Conduit
- [x] I've read, understood, and done my best to follow the CONTRIBUTING guidelines.
This pull request includes (pick all that apply):
- [ ] Bugfixes
- [ ] New features
- [x] Breaking changes
- [ ] Documentation updates
- [ ] Unit tests
- [ ] Other
Summary
- Remove deprecated types:
BearerOAuth2Token,OAuth2TokenAES256CBCCipher, andOAuth2TokenDiskStore - Set
IPHONEOS_DEPLOYMENT_TARGETto 9.0 for all Conduit targets
pr closed time in 2 months
push eventmindbody/Conduit
commit sha c03e31091ff46c3706ae9f8d4c9c370e88717107
Set IPHONEOS_DEPLOYMENT_TARGET to 9.0
push time in 2 months
PR closed mindbody/Conduit
Summary
Attempt to set up GitHub CI workflow
pr closed time in 2 months
PR opened mindbody/Conduit
- [x] I've read, understood, and done my best to follow the CONTRIBUTING guidelines.
This pull request includes (pick all that apply):
- [ ] Bugfixes
- [ ] New features
- [x] Breaking changes
- [ ] Documentation updates
- [ ] Unit tests
- [ ] Other
Summary
- Remove deprecated types:
BearerOAuth2Token,OAuth2TokenAES256CBCCipher, andOAuth2TokenDiskStore
pr created time in 2 months
push eventmindbody/Conduit
commit sha f007291c1a4cfb5b057d4cee64bc89aac13e04e1
CHANGELOG
push time in 2 months