Skip to content

Instantly share code, notes, and snippets.

@bootstraponline
bootstraponline / fail.rb
Last active December 19, 2015 21:58
Parallel minitest
require 'rubygems'
$at_once = '3'
$total = 6
ENV['N'] = $at_once
require 'selenium-webdriver'
require 'minitest'
require 'minitest/hell'
@bootstraponline
bootstraponline / appium_android.bash
Last active December 17, 2015 08:29
Start appium from source, open emulator, and cd into test folder.
# code goes in ~/.bash_profile
# tested on OS X
export APPIUM_HOME="$HOME/Desktop/appium"
export TEST_HOME="$HOME/path/to/tests"
export APPIUM_AVD="t18"
function three {
# does node exist?
[[ $(ps axo pid,command | grep "[0-9]\+ node" | wc -l) -gt 0 ]] && \
@bootstraponline
bootstraponline / export.js
Created February 27, 2013 23:09
Export devices that pass 100% from AppThwack.
// device name : result
var pairs = $x('//*[@id="by_device"]/div/div/div');
for (var a = 0, len = pairs.length / 2; a < len; a+=2) {
if (all_passed(pairs[a+1])) {
console.log(device_name(pairs[a]));
}
}
// device name. pairs[0]
[9] pry(main)> @driver.execute_script 'mobile: tap', :tapCount => 1, :touchCount => 1, :duration => 0.1, :x => 0.8, :y => 0.4
:post
"session/6279234c-cd7c-40cb-8549-69c294c66147/execute"
{:script=>"mobile: tap", :args=>[{:tapCount=>1, :touchCount=>1, :duration=>0.1, :x=>0.8, :y=>0.4}]}
Selenium::WebDriver::Error::WebDriverError: unexpected response, code=400, content-type="text/html"
Parameters for mobile method did not match the definition. Required params must be sent as script args in this order: ["tapCount","touchCount","duration","x","y"]
from /selenium-webdriver-2.29.0/lib/selenium/webdriver/remote/http/common.rb:66:in 'create_response'
[10] pry(main)> a = {:script=>"mobile: tap", :args=>[{:tapCount=>1, :touchCount=>1, :duration=>0.1, :x=>0.8, :y=>0.4}]}.to_json; puts a
@bootstraponline
bootstraponline / app_installation_hooks.rb
Created January 23, 2013 00:02
Use clear_app_data to install apk once instead of after each scenario. export RESET_BETWEEN_SCENARIOS=1
require 'calabash-android/management/app_installation'
AfterConfiguration do |config|
FeatureNameMemory.feature_name = nil
end
$first_run = true
Before do |scenario|
@scenario_is_outline = (scenario.class == Cucumber::Ast::OutlineTable::ExampleRow)
# Implement is focused app using dumpsys window windows
def is_focused_app app
output = `#{adb_command} shell dumpsys window windows`
return false if output.nil?
target = nil
output.each_line do |line|
if line.include? 'mFocusedApp'
target = line
@bootstraponline
bootstraponline / ace.diff
Created October 22, 2012 05:39
Ace patch
diff --git a/Makefile.dryice.js b/Makefile.dryice.js
index 3109f84..4bb5fe6 100755
--- a/Makefile.dryice.js
+++ b/Makefile.dryice.js
@@ -308,7 +308,7 @@ var buildAce = function(options) {
if (!options.requires)
options.requires = [options.exportModule];
- var targetDir = options.targetDir + options.suffix;
+ var targetDir = options.targetDir + options.suffix + "/ace";
@bootstraponline
bootstraponline / remove_numbers.js
Created October 13, 2012 02:15
Remove line numbers on Travis CI
// $$ = document.querySelectorAll
// Chrome Dev Tools
Array.prototype.forEach.call($$('.red .log p a'), function(line) {line.parentNode.removeChild(line)});
@bootstraponline
bootstraponline / selector.js
Created June 7, 2012 23:09
CSS selectors in Chrome
/*
Bootstrap Online LLC. Released under the Apache license.
https://www.apache.org/licenses/LICENSE-2.0
Print CSS selector for the provided element.
Example using the currently selected item in Chrome Dev Tools:
c( $0 );
*/
function c( element ) {
var result = '';