Skip to content
This repository has been archived by the owner on May 22, 2018. It is now read-only.

Commit

Permalink
Update crazy-fun to handle Closure's new goog.module syntax in js bui…
Browse files Browse the repository at this point in the history
…lds.

We were using Closure's calcdeps.py script to build a dependency graph,
but this has been deprecated and will not be updated for the goog.module
primitive. Rather than fork it, I moved its logic (which is relatively
straight forward) into crazy_fun. Also using this opportunity to merge
the js_deps and js_library rules, which served the same purpose.
  • Loading branch information
jleyba committed Nov 11, 2014
1 parent d0ce1f0 commit fc85506
Show file tree
Hide file tree
Showing 19 changed files with 284 additions and 789 deletions.
27 changes: 10 additions & 17 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -447,29 +447,22 @@ task :ios_driver => [
]

file "build/javascript/deps.js" => FileList[
"third_party/closure/goog/**/*.js",
"third_party/closure/goog/**/*.js",
"third_party/js/wgxpath/**/*.js",
"javascript/*/**/*.js", # Don't depend on js files directly in javascript/
"javascript/*/**/*.js", # Don't depend on js files directly in javascript/
] do
our_cmd = "java -jar third_party/py/jython.jar third_party/closure/bin/calcdeps.py "
our_cmd << "--output_mode=deps --path=javascript --path=third_party/js/wgxpath "
our_cmd << "--dep=third_party/closure/goog"

# Generate the deps. The file paths will be as they appear on the filesystem,
# but for our tests, the WebDriverJS source files are served from /js/src and
# the Closure Library source is under /third_party/closure/goog, so we need
# to modify the generated paths to match that scheme.
output = ""
io = IO.popen(our_cmd)
io.each do |line|
line = line.gsub("\\\\", "/")
output << line.gsub(/common\/(.*)\/js/, 'js/\1')
end

puts "Scanning deps"
deps = Javascript::ClosureDeps.new
Dir["javascript/*/**/*.js"].
reject {|f| f[/javascript\/node/]}.
each {|f| deps.parse_file(f)}
Dir["third_party/js/wgxpath/**/*.js"].each {|f| deps.parse_file(f)}

built_deps = "build/javascript/deps.js"
puts "Writing #{built_deps}"
mkdir_p File.dirname(built_deps)
File.open(built_deps, "w") do |f| f.write(output); end
deps.write_deps(built_deps)
cp built_deps, "javascript/deps.js"
end

Expand Down
15 changes: 2 additions & 13 deletions javascript/atoms/build.desc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

js_binary(name = "atoms",
deps = [
":deps",
":all_js",
])

js_library(name = "all_js",
Expand Down Expand Up @@ -31,24 +31,13 @@ js_library(name = "json",
"userAgent.js"
])

js_deps(name = "deps",
srcs = [
"*.js",
"locators/*.js",
"html5/*.js",
],
deps = [
"//third_party/js/wgxpath:wgxpath",
"//third_party/closure",
])

js_test(name = "test",
srcs = [
"test/*_test.html",
"test/html5/*_test.html",
],
deps = [
":deps",
":all_js",
"//java/client/test/org/openqa/selenium/javascript",
"//java/server/test/org/openqa/selenium:server-with-tests:uber",
])
Expand Down
14 changes: 7 additions & 7 deletions javascript/chrome-driver/build.desc
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
# Used for http://src.chromium.org/svn/trunk/third_party/webdriver/atoms.h

js_deps(name = "deps",
js_library(name = "lib",
srcs = [ "*.js" ],
deps = [ "//javascript/atoms:deps" ])
deps = [ "//javascript/atoms:all_js" ])

js_fragment(name = "get_location_in_view",
module = "webdriver.chrome",
function = "webdriver.chrome.getLocationInView",
deps = [ ":deps" ])
deps = [ ":lib" ])

js_fragment(name = "get_first_client_rect",
module = "webdriver.chrome",
function = "webdriver.chrome.getFirstClientRect",
deps = [ ":deps" ])
deps = [ ":lib" ])

js_fragment(name = "is_element_clickable",
module = "webdriver.chrome",
function = "webdriver.chrome.isElementClickable",
deps = [ ":deps" ])
deps = [ ":lib" ])

js_fragment(name = "get_page_zoom",
module = "webdriver.chrome",
function = "webdriver.chrome.getPageZoom",
deps = [ ":deps" ])
deps = [ ":lib" ])

js_test(name = "test",
srcs = [ "test/*_test.html" ],
deps = [
":deps",
":lib",
"//java/client/src/org/openqa/selenium/chrome",
"//java/client/test/org/openqa/selenium/javascript",
],
Expand Down
30 changes: 15 additions & 15 deletions javascript/firefox-driver/build.desc
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ js_binary(name = "bad-cert-listener",
deps = [
":logging",
":moz",
"//javascript/webdriver/atoms:deps"
"//javascript/webdriver/atoms:all_js"
])

js_binary(name = "command-processor",
Expand All @@ -109,7 +109,7 @@ js_binary(name = "command-processor",
":timer",
":utils",
":webelement",
"//javascript/webdriver/atoms:deps"
"//javascript/webdriver/atoms:all_js"
])

js_binary(name = "driver-component",
Expand All @@ -131,7 +131,7 @@ js_binary(name = "driver-component",
":firefoxdriver",
":webdriverserver",
":webelement",
"//javascript/webdriver/atoms:deps",
"//javascript/webdriver/atoms:all_js",
])

js_binary(name = "modifier-keys",
Expand All @@ -147,7 +147,7 @@ js_binary(name = "modifier-keys",
deps = [
":moz",
":utils",
"//javascript/webdriver/atoms:deps",
"//javascript/webdriver/atoms:all_js",
])

js_binary(name = "prompt-service",
Expand Down Expand Up @@ -214,7 +214,7 @@ js_binary(name = "synthetic-mouse",
":logging",
":moz",
":utils",
"//javascript/webdriver/atoms:deps",
"//javascript/webdriver/atoms:all_js",
])

js_binary(name = "web-element-cache",
Expand All @@ -231,7 +231,7 @@ js_binary(name = "web-element-cache",
":firefox-utils",
":moz",
":utils",
"//javascript/webdriver/atoms:deps"
"//javascript/webdriver/atoms:all_js"
])


Expand All @@ -242,7 +242,7 @@ js_library(name = "dispatcher",
":request",
":response",
":utils",
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "firefox-utils",
Expand All @@ -252,7 +252,7 @@ js_library(name = "firefox-utils",
deps = [
":logging",
":moz",
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "firefoxdriver",
Expand All @@ -265,7 +265,7 @@ js_library(name = "firefoxdriver",
":utils",
":webelement",
":webloadinglistener",
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "error",
Expand Down Expand Up @@ -299,20 +299,20 @@ js_library(name = "modals",
":moz",
":timer",
":utils",
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "moz",
srcs = [ "js/moz.js" ],
deps = [
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "preconditions",
srcs = [ "js/preconditions.js", ],
deps = [
":utils",
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "prefs",
Expand Down Expand Up @@ -353,7 +353,7 @@ js_library(name = "utils",
":logging",
":moz",
":webloadinglistener",
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
])

js_library(name = "webdriverserver",
Expand All @@ -374,8 +374,8 @@ js_library(name = "webelement",
":preconditions",
":utils",
":webloadinglistener",
"//javascript/atoms:deps",
"//javascript/webdriver:deps",
"//javascript/atoms:all_js",
"//javascript/webdriver:all_js",
])

js_library(name = "webloadinglistener",
Expand Down
4 changes: 2 additions & 2 deletions javascript/ie-driver/build.desc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
js_deps(name = "deps",
js_library(name = "deps",
srcs = [ "*.js" ],
deps = [ "//javascript/atoms:deps" ])
deps = [ "//javascript/atoms:all_js" ])

js_fragment(name = "find_element",
module = "webdriver.ie",
Expand Down
4 changes: 2 additions & 2 deletions javascript/iphone-driver/build.desc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
js_deps(name = "atoms",
js_library(name = "atoms",
srcs = "**/*.js",
deps = "//javascript/atoms:deps")
deps = "//javascript/atoms:all_js")

js_fragment(name = "execute_async_script",
module = "webdriver.iphone",
Expand Down
4 changes: 2 additions & 2 deletions javascript/opera-driver/build.desc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Used for https://github.com/operasoftware/operadriver/tree/master/src/com/opera/core/systems/OperaAtom.java

js_deps(name = "deps",
js_library(name = "deps",
srcs = [ "*.js" ],
deps = [ "//javascript/atoms:deps" ])
deps = [ "//javascript/atoms:all_js" ])

js_fragment(name = "move_caret_to_end",
module = "webdriver.opera",
Expand Down
6 changes: 3 additions & 3 deletions javascript/remote/build.desc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ js_binary(name = "clientbin",
"ui/*.js",
],
deps = [
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
"//javascript/webdriver:webdriver_lib",
],
flags = [
Expand Down Expand Up @@ -49,8 +49,8 @@ js_test(name = "test",
srcs = [ "test/**/*_test.html" ],
deps = [
"./**/*.js",
"//javascript/atoms:deps",
"//javascript/webdriver:deps",
"//javascript/atoms:all_js",
"//javascript/webdriver:all_js",
"//java/client/test/org/openqa/selenium/javascript",
"//java/server/test/org/openqa/selenium:server-with-tests:uber",
])
1 change: 1 addition & 0 deletions javascript/safari-driver/build.desc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ js_library(
deps = [
"//javascript/safari-driver/message:message",
"//javascript/webdriver:base_lib",
"//javascript/webdriver:logging_lib",
])

# Binary that may be used by a language binding to establish a connection
Expand Down
6 changes: 3 additions & 3 deletions javascript/selenium-atoms/build.desc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

js_deps(name = "deps",
js_library(name = "deps",
srcs = [ "*.js" ],
deps = [
"//javascript/atoms:deps",
"//javascript/webdriver/atoms:deps",
"//javascript/atoms:all_js",
"//javascript/webdriver/atoms:all_js",
])

js_binary(name = "selenium-atoms",
Expand Down
6 changes: 3 additions & 3 deletions javascript/watir-atoms/build.desc
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ js_library(
js_fragment(name = "fireEvent",
module = "bot.events",
function = "bot.events.fire",
deps = ["//javascript/atoms:deps"])
deps = ["//javascript/atoms:all_js"])

js_fragment(name = "getParentElement",
module = "bot.dom",
function = "bot.dom.getParentElement",
deps = ["//javascript/atoms:deps"])
deps = ["//javascript/atoms:all_js"])

js_fragment(name = "getOuterHtml",
module = "goog.dom",
Expand All @@ -26,4 +26,4 @@ js_fragment(name = "selectText",
js_fragment(name = "getAttribute",
module = "bot.dom",
function = "bot.dom.getAttribute",
deps = ["//javascript/atoms:deps"])
deps = ["//javascript/atoms:all_js"])
6 changes: 3 additions & 3 deletions javascript/webdriver/atoms/build.desc
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
js_deps(name = "deps",
js_library(name = "all_js",
srcs = [
"*.js",
"*/*.js",
],
deps = [
"//javascript/atoms:deps",
"//javascript/atoms:all_js",
"//javascript/webdriver:key_lib",
])

Expand All @@ -18,7 +18,7 @@ js_binary(name = "inputs",
],
no_format = "true",
deps = [
":deps",
":all_js",
])

js_library(name = "atoms_lib",
Expand Down
Loading

0 comments on commit fc85506

Please sign in to comment.