whirlwind 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.autotest +23 -0
- data/.gemtest +0 -0
- data/History.txt +6 -0
- data/Manifest.txt +79 -0
- data/README.txt +76 -0
- data/Rakefile +15 -0
- data/bin/whirlwind +99 -0
- data/demo_test_site/demo_site.rb +37 -0
- data/demo_test_site/public/images/arrow_left_48.png +0 -0
- data/demo_test_site/public/images/arrow_right_48.png +0 -0
- data/demo_test_site/public/images/down.gif +0 -0
- data/demo_test_site/public/images/header.jpg +0 -0
- data/demo_test_site/public/images/menu.gif +0 -0
- data/demo_test_site/public/images/menuhover.gif +0 -0
- data/demo_test_site/public/javascripts/browser.menu.js +61 -0
- data/demo_test_site/public/javascripts/cyberconnect_helpers.js +369 -0
- data/demo_test_site/public/javascripts/jquery-1.5.1.min.js +16 -0
- data/demo_test_site/public/javascripts/jquery-1.6.2.min.js +18 -0
- data/demo_test_site/public/javascripts/jquery-ui-1.8.10.custom.min.js +1370 -0
- data/demo_test_site/public/javascripts/jquery.layout.min-1.2.0.js +80 -0
- data/demo_test_site/public/javascripts/jqueryslidemenu.css +93 -0
- data/demo_test_site/public/javascripts/jqueryslidemenu.js +48 -0
- data/demo_test_site/public/javascripts/ui.accordion.js +477 -0
- data/demo_test_site/public/jquery.ui.all.css +11 -0
- data/demo_test_site/public/jquery.ui.base.css +11 -0
- data/demo_test_site/public/jquery.ui.theme.css +252 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-icons_222222_256x240.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-icons_2e83ff_256x240.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-icons_454545_256x240.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-icons_888888_256x240.png +0 -0
- data/demo_test_site/public/jquery_css/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/demo_test_site/public/jquery_css/jquery-ui-1.8.10.custom.css +573 -0
- data/demo_test_site/public/jquery_layout.css +14 -0
- data/demo_test_site/public/jqueryslidemenu.css +93 -0
- data/demo_test_site/public/menu.css +12 -0
- data/demo_test_site/public/style.css +196 -0
- data/demo_test_site/views/index.erb +294 -0
- data/images/.placeholder +0 -0
- data/lib/browser.rb +22 -0
- data/lib/cucumber/formatter/cucumber.css +282 -0
- data/lib/cucumber/formatter/html_image.rb +750 -0
- data/lib/cucumber/formatter/jquery-min.js +154 -0
- data/lib/cucumber.rb +68 -0
- data/lib/duration.rb +13 -0
- data/lib/io.rb +31 -0
- data/lib/ordered_xml_markup.rb +24 -0
- data/lib/rspec.rb +75 -0
- data/lib/watir.rb +105 -0
- data/lib/whirlwind.rb +39 -0
- data/sites/demo/conf/base_urls.yml +6 -0
- data/sites/demo/conf/browser.yaml +1 -0
- data/sites/demo/conf/html_elements.yaml +22 -0
- data/sites/demo/conf/remote_machine.yaml +12 -0
- data/sites/demo/conf/users.yaml +21 -0
- data/sites/demo/elements/demo_common_elements.rb +42 -0
- data/sites/demo/elements/demo_elements.rb +18 -0
- data/sites/demo/elements/demo_registration_elements.rb +27 -0
- data/sites/demo/features/click_links.feature +21 -0
- data/sites/demo/features/register_user.feature +27 -0
- data/sites/demo/features/step_defn/demo.rb +62 -0
- data/sites/demo/flows/home_flows.rb +25 -0
- data/sites/demo/flows/registration_flows.rb +21 -0
- data/sites/demo/results/.placeholder +0 -0
- data/test/features/browser_types.feature +22 -0
- data/test/features/open_browser.feature +20 -0
- data/test/features/resource_size.feature +13 -0
- data/test/features/step_defn/browser.rb +61 -0
- data/test/test_whirlwind.rb +8 -0
- metadata +198 -0
data/.autotest
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'autotest/restart'
|
4
|
+
|
5
|
+
# Autotest.add_hook :initialize do |at|
|
6
|
+
# at.extra_files << "../some/external/dependency.rb"
|
7
|
+
#
|
8
|
+
# at.libs << ":../some/external"
|
9
|
+
#
|
10
|
+
# at.add_exception 'vendor'
|
11
|
+
#
|
12
|
+
# at.add_mapping(/dependency.rb/) do |f, _|
|
13
|
+
# at.files_matching(/test_.*rb$/)
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# %w(TestA TestB).each do |klass|
|
17
|
+
# at.extra_class_map[klass] = "test/test_misc.rb"
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
|
21
|
+
# Autotest.add_hook :run_command do |at|
|
22
|
+
# system "rake build"
|
23
|
+
# end
|
data/.gemtest
ADDED
File without changes
|
data/History.txt
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
.autotest
|
2
|
+
History.txt
|
3
|
+
Manifest.txt
|
4
|
+
README.txt
|
5
|
+
Rakefile
|
6
|
+
bin/whirlwind
|
7
|
+
lib/whirlwind.rb
|
8
|
+
History.txt
|
9
|
+
demo_test_site/views/index.erb
|
10
|
+
demo_test_site/demo_site.rb
|
11
|
+
demo_test_site/public/jquery.ui.theme.css
|
12
|
+
demo_test_site/public/jquery.ui.base.css
|
13
|
+
demo_test_site/public/style.css
|
14
|
+
demo_test_site/public/jquery_layout.css
|
15
|
+
demo_test_site/public/jquery.ui.all.css
|
16
|
+
demo_test_site/public/javascripts/jqueryslidemenu.js
|
17
|
+
demo_test_site/public/javascripts/jquery-1.5.1.min.js
|
18
|
+
demo_test_site/public/javascripts/jquery-1.6.2.min.js
|
19
|
+
demo_test_site/public/javascripts/ui.accordion.js
|
20
|
+
demo_test_site/public/javascripts/browser.menu.js
|
21
|
+
demo_test_site/public/javascripts/jquery.layout.min-1.2.0.js
|
22
|
+
demo_test_site/public/javascripts/jquery-ui-1.8.10.custom.min.js
|
23
|
+
demo_test_site/public/javascripts/jqueryslidemenu.css
|
24
|
+
demo_test_site/public/javascripts/cyberconnect_helpers.js
|
25
|
+
demo_test_site/public/jqueryslidemenu.css
|
26
|
+
demo_test_site/public/menu.css
|
27
|
+
demo_test_site/public/jquery_css/jquery-ui-1.8.10.custom.css
|
28
|
+
demo_test_site/public/jquery_css/images/ui-bg_glass_65_ffffff_1x400.png
|
29
|
+
demo_test_site/public/jquery_css/images/ui-bg_glass_75_e6e6e6_1x400.png
|
30
|
+
demo_test_site/public/jquery_css/images/ui-bg_highlight-soft_75_cccccc_1x100.png
|
31
|
+
demo_test_site/public/jquery_css/images/ui-icons_454545_256x240.png
|
32
|
+
demo_test_site/public/jquery_css/images/ui-icons_888888_256x240.png
|
33
|
+
demo_test_site/public/jquery_css/images/ui-icons_222222_256x240.png
|
34
|
+
demo_test_site/public/jquery_css/images/ui-icons_2e83ff_256x240.png
|
35
|
+
demo_test_site/public/jquery_css/images/ui-bg_flat_75_ffffff_40x100.png
|
36
|
+
demo_test_site/public/jquery_css/images/ui-bg_glass_95_fef1ec_1x400.png
|
37
|
+
demo_test_site/public/jquery_css/images/ui-bg_flat_0_aaaaaa_40x100.png
|
38
|
+
demo_test_site/public/jquery_css/images/ui-bg_glass_75_dadada_1x400.png
|
39
|
+
demo_test_site/public/jquery_css/images/ui-bg_glass_55_fbf9ee_1x400.png
|
40
|
+
demo_test_site/public/jquery_css/images/ui-icons_cd0a0a_256x240.png
|
41
|
+
demo_test_site/public/images/down.gif
|
42
|
+
demo_test_site/public/images/arrow_left_48.png
|
43
|
+
demo_test_site/public/images/header.jpg
|
44
|
+
demo_test_site/public/images/menuhover.gif
|
45
|
+
demo_test_site/public/images/arrow_right_48.png
|
46
|
+
demo_test_site/public/images/menu.gif
|
47
|
+
test/features/browser_types.feature
|
48
|
+
test/features/open_browser.feature
|
49
|
+
test/features/resource_size.feature
|
50
|
+
test/features/step_defn/browser.rb
|
51
|
+
test/test_whirlwind.rb
|
52
|
+
Rakefile
|
53
|
+
bin/whirlwind
|
54
|
+
sites/demo/elements/demo_common_elements.rb
|
55
|
+
sites/demo/elements/demo_registration_elements.rb
|
56
|
+
sites/demo/elements/demo_elements.rb
|
57
|
+
sites/demo/results/.placeholder
|
58
|
+
sites/demo/features/register_user.feature
|
59
|
+
sites/demo/features/step_defn/demo.rb
|
60
|
+
sites/demo/features/click_links.feature
|
61
|
+
sites/demo/flows/registration_flows.rb
|
62
|
+
sites/demo/flows/home_flows.rb
|
63
|
+
sites/demo/conf/users.yaml
|
64
|
+
sites/demo/conf/remote_machine.yaml
|
65
|
+
sites/demo/conf/browser.yaml
|
66
|
+
sites/demo/conf/base_urls.yml
|
67
|
+
sites/demo/conf/html_elements.yaml
|
68
|
+
lib/cucumber.rb
|
69
|
+
lib/whirlwind.rb
|
70
|
+
lib/duration.rb
|
71
|
+
lib/rspec.rb
|
72
|
+
lib/browser.rb
|
73
|
+
lib/cucumber/formatter/jquery-min.js
|
74
|
+
lib/cucumber/formatter/cucumber.css
|
75
|
+
lib/cucumber/formatter/html_image.rb
|
76
|
+
lib/watir.rb
|
77
|
+
lib/ordered_xml_markup.rb
|
78
|
+
lib/io.rb
|
79
|
+
images/.placeholder
|
data/README.txt
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
= whirlwind
|
2
|
+
|
3
|
+
* http://github.com/ccyphers/whirlwind
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
=== Unobstructed QA Browser Automation
|
7
|
+
=== Through sensible conventions along with cucumber and watir-webdriver
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* Centralized location for defining page based elements,
|
12
|
+
such as links, images, tables, text, etc.
|
13
|
+
|
14
|
+
* One can use screen_shot('some image description') from within
|
15
|
+
rspec step definitions, flows and elements. All images taken
|
16
|
+
during cucumber's execution are embedded into an html report.
|
17
|
+
|
18
|
+
* Flow objects are automatically created for you and accessible from
|
19
|
+
within rspec step definitions, flows and elements. This includes
|
20
|
+
flows from all sites, not just the site running for the current cucumber
|
21
|
+
feature.
|
22
|
+
|
23
|
+
* A browser instance is automatically instantiated, you never
|
24
|
+
have to manually call a browser and is accessible through the instance
|
25
|
+
variable @browser
|
26
|
+
|
27
|
+
* Fixture data is automatically loaded into an instance var @test_data and
|
28
|
+
is accessible from rspec step definitions, flows and elements. @test_data
|
29
|
+
takes the form:
|
30
|
+
|
31
|
+
@test_data[site_name][fixture_file_without_suffix][keys to load from fixture file]
|
32
|
+
|
33
|
+
For example, say you want to access a manager in the test environment from a fixture file
|
34
|
+
located at sites/demo/conf/users.yaml you would:
|
35
|
+
|
36
|
+
@test_data['demo'][:users][:test][:manager]
|
37
|
+
|
38
|
+
Note, here 'demo' is used for the site name, but a global vairable $site_name is
|
39
|
+
also available and set to the site name for feature(s) that are executing.
|
40
|
+
|
41
|
+
|
42
|
+
== SYNOPSIS:
|
43
|
+
|
44
|
+
To create a local snapshot from the current installed version:
|
45
|
+
whirlwind --snapshot /some/path/
|
46
|
+
|
47
|
+
General options:
|
48
|
+
--environment # set to a name that is used to organize your fixture data.
|
49
|
+
For example, test, dev, prod
|
50
|
+
--browser # set to a valid selenium-webdriver supported browser
|
51
|
+
--site # optional, if the test site name is provided run all features
|
52
|
+
# for that site. If this is not provided pass a feature file
|
53
|
+
as the last argument
|
54
|
+
|
55
|
+
To execute the example demo site test. This assumes you have started
|
56
|
+
the demo site located under demo_test_site.
|
57
|
+
|
58
|
+
cd /local/snapshot/dir
|
59
|
+
./bin/whirlwind --site sites/demo --browser ff --environment test
|
60
|
+
|
61
|
+
Test results are stored under sites/<site_name>/results.
|
62
|
+
|
63
|
+
|
64
|
+
== REQUIREMENTS:
|
65
|
+
|
66
|
+
* Imagemagic with development headers so that the rmagick gem can be compiled.
|
67
|
+
|
68
|
+
== INSTALL:
|
69
|
+
|
70
|
+
* gem install whirlwind
|
71
|
+
|
72
|
+
== LICENSE:
|
73
|
+
|
74
|
+
GPLv3: http://www.gnu.org/licenses/gpl.html
|
75
|
+
|
76
|
+
Copyright (c) 2011 Cliff Cyphers
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
5
|
+
|
6
|
+
Hoe.spec 'whirlwind' do
|
7
|
+
developer('Cliff Cyphers', 'cliff.cyphers@gmail.com')
|
8
|
+
extra_deps << ['platform_helpers', '0.1.3']
|
9
|
+
extra_deps << ['cucumber', '1.1.0']
|
10
|
+
extra_deps << ['rspec', '2.7.0']
|
11
|
+
extra_deps << ['watir-webdriver', '0.3.5']
|
12
|
+
extra_deps << ['rmagick', '2.13.1']
|
13
|
+
end
|
14
|
+
|
15
|
+
# vim: syntax=ruby
|
data/bin/whirlwind
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'getoptlong'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
def usage
|
7
|
+
msg = <<-EOF
|
8
|
+
To create a local snapshot from the current installed version:
|
9
|
+
whirlwind --snapshot /some/path/
|
10
|
+
|
11
|
+
General options:
|
12
|
+
--environment # set to a name that is used to organize your fixture data.
|
13
|
+
For example, test, dev, prod
|
14
|
+
--browser # set to a valid selenium-webdriver supported browser
|
15
|
+
--site # optional, if the test site name is provided run all features
|
16
|
+
# for that site. If this is not provided pass a feature file
|
17
|
+
as the last argument
|
18
|
+
|
19
|
+
To execute the example demo site test. This assumes you have started
|
20
|
+
the demo site located under demo_test_site.
|
21
|
+
|
22
|
+
cd /local/snapshot/dir
|
23
|
+
./bin/whirlwind --site sites/demo --browser ff --environment test
|
24
|
+
|
25
|
+
Test results are stored under sites/<site_name>/results.
|
26
|
+
EOF
|
27
|
+
puts msg
|
28
|
+
exit 1
|
29
|
+
end
|
30
|
+
|
31
|
+
raise StandardError unless RUBY_VERSION =~ /^1\.9\.\d$/
|
32
|
+
usage unless ARGV.length > 0
|
33
|
+
args = ARGV.dup
|
34
|
+
begin
|
35
|
+
opts = GetoptLong.new([ '--snapshot', '-s', GetoptLong::REQUIRED_ARGUMENT ],
|
36
|
+
[ '--environment', '-e', GetoptLong::REQUIRED_ARGUMENT ],
|
37
|
+
[ '--browser', '-b', GetoptLong::REQUIRED_ARGUMENT ],
|
38
|
+
[ '--site', '-i', GetoptLong::REQUIRED_ARGUMENT ]
|
39
|
+
)
|
40
|
+
|
41
|
+
|
42
|
+
site = ''
|
43
|
+
$browser_type = nil
|
44
|
+
|
45
|
+
opts.each { |opt, arg|
|
46
|
+
if opt == '--snapshot' || opt == '-s'
|
47
|
+
raise ArgumentError, "Please provide a valid directory." unless File.directory?(arg)
|
48
|
+
dir = File.expand_path(File.dirname(__FILE__) + '/..')
|
49
|
+
base = File.basename(dir)
|
50
|
+
FileUtils.cp_r dir, arg
|
51
|
+
FileUtils.chmod 0700, "#{arg}/#{base}/bin/whirlwind"
|
52
|
+
exit 0
|
53
|
+
end
|
54
|
+
if opt == '--environment' || opt == '-e'
|
55
|
+
$environment = arg.to_sym
|
56
|
+
end
|
57
|
+
if opt == '--browser' || opt == '-b'
|
58
|
+
$browser_type = arg
|
59
|
+
end
|
60
|
+
if opt == '--site' || opt == '-i'
|
61
|
+
site = File.expand_path(arg)
|
62
|
+
$site_name = File.basename site
|
63
|
+
puts "SITE: #{site}"
|
64
|
+
unless File.directory?(site)
|
65
|
+
puts "Can't find site: #{site}"
|
66
|
+
exit 1
|
67
|
+
end
|
68
|
+
FileUtils.chdir(site)
|
69
|
+
end
|
70
|
+
}
|
71
|
+
rescue => e
|
72
|
+
end
|
73
|
+
|
74
|
+
if site == ''
|
75
|
+
if File.exists?(args.last)
|
76
|
+
full_p = File.expand_path(args.last)
|
77
|
+
p = File.expand_path(File.dirname(args.last) + '/..')
|
78
|
+
$site_name = File.basename p
|
79
|
+
FileUtils.chdir(p)
|
80
|
+
args.delete(args.last)
|
81
|
+
args << full_p
|
82
|
+
else
|
83
|
+
puts "Either a site name using option --site or a feature file to execute"
|
84
|
+
exit 1
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
delete_items = %w(--snapshot -s --environment -e --site -i --browser -b)
|
89
|
+
delete_items.each { |i|
|
90
|
+
index = args.rindex(i)
|
91
|
+
if index
|
92
|
+
next_ = args[index+1]
|
93
|
+
args.delete_at(index)
|
94
|
+
args.delete(next_)
|
95
|
+
end
|
96
|
+
}
|
97
|
+
args += ['-f', 'Cucumber::Formatter::HtmlImage', '--out', 'tmp.html', '-f', 'pretty']
|
98
|
+
require 'cucumber'
|
99
|
+
Cucumber::Cli::Main.execute(args)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'yaml'
|
3
|
+
require 'find'
|
4
|
+
require 'fileutils'
|
5
|
+
$base = File.expand_path(File.dirname(__FILE__))
|
6
|
+
require 'rubygems'
|
7
|
+
require 'sinatra'
|
8
|
+
require 'json'
|
9
|
+
|
10
|
+
class DemoTestSite < Sinatra::Base
|
11
|
+
configure do
|
12
|
+
set(:server, ["mongrel", "webrick"])
|
13
|
+
set(:chdir, $base)
|
14
|
+
set(:public_folder, ($base + "/public"))
|
15
|
+
set(:bind, "localhost")
|
16
|
+
#enable(:sessions)
|
17
|
+
end
|
18
|
+
get("/") do
|
19
|
+
cook = false
|
20
|
+
erb(:index)
|
21
|
+
end
|
22
|
+
post("/create_tmp_file") do
|
23
|
+
res = {:results => false}
|
24
|
+
file = "/tmp/#{params['file_name']}"
|
25
|
+
begin
|
26
|
+
FileUtils.rm_f file if File.exists? file
|
27
|
+
FileUtils.touch file
|
28
|
+
rescue => e
|
29
|
+
end
|
30
|
+
res[:results] = File.exists? file
|
31
|
+
res.to_json
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
Dir.chdir($base)
|
36
|
+
retry_ct = 0
|
37
|
+
DemoTestSite.run!(:host => "localhost", :port => 9090, :chdir => $base)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,61 @@
|
|
1
|
+
// JavaScript Document
|
2
|
+
//var menus = $.extend(defaults, menus);
|
3
|
+
(function($){
|
4
|
+
|
5
|
+
$.fn.bmenu = function(menus) {
|
6
|
+
return this.each(function() {
|
7
|
+
obj=$(this);
|
8
|
+
obj.empty();
|
9
|
+
$('<div id=shadow></div>').insertBefore(obj);
|
10
|
+
$.each(menus,function(i, menu) {
|
11
|
+
// for(i in menus) {
|
12
|
+
obj.append('<br><div><a id="'+menu.id+'" style="text-decoration:none; cursor:default;"> '+menu.name+'</a></div>');
|
13
|
+
$('a#' + menu.id).click(function() {
|
14
|
+
$(obj).hide();
|
15
|
+
eval(menu.func);
|
16
|
+
});
|
17
|
+
/*
|
18
|
+
$('a#' + menus[i].id).click(function() {
|
19
|
+
$(obj).hide();
|
20
|
+
try {
|
21
|
+
eval(menus[i].func);
|
22
|
+
} catch(e) {
|
23
|
+
alert(e);
|
24
|
+
}
|
25
|
+
})
|
26
|
+
*/
|
27
|
+
});
|
28
|
+
obj.append('<br>');
|
29
|
+
obj.children('div:not("#line")').hover(
|
30
|
+
function () {
|
31
|
+
$(this).css('background-color','#C9DBEE');
|
32
|
+
$(this).css('opacity','0.9');
|
33
|
+
$(this).css('cursor','default');
|
34
|
+
$(this).css('background-color','');
|
35
|
+
}
|
36
|
+
);
|
37
|
+
obj.prepend('<div id=line></div>');
|
38
|
+
$('#line').css({ 'opacity':'3', 'width':'27px',
|
39
|
+
'background-color':obj.css('background-color'),
|
40
|
+
'float':'left','height':obj.height()+'px', 'border-right':'solid 1px #E7E7E7'
|
41
|
+
});
|
42
|
+
});
|
43
|
+
};
|
44
|
+
/*
|
45
|
+
$.extend($.fn.bmenu, {
|
46
|
+
show: function() {
|
47
|
+
$('#shadow').hide(); obj.hide(); mheight=obj.height(); mwidth=obj.width();
|
48
|
+
if(e.pageY>=$(window).height()-(mheight+5)){ Y=e.pageY-(mheight+5); } else{ Y=e.pageY; }
|
49
|
+
if(e.pageX>=$(window).width()-(mwidth+5)){ X=e.pageX-(mwidth+5); } else{ X=e.pageX; }
|
50
|
+
obj.css('left',X); obj.css('top',Y);
|
51
|
+
$('#shadow').css({ 'display': 'none', 'position':'absolute', 'opacity':'0.4',
|
52
|
+
'width':obj.width()+'px', 'background-color':'#000' });
|
53
|
+
$('#shadow').css('height',obj.height());
|
54
|
+
$('#shadow').css('left',X+5);
|
55
|
+
$('#shadow').css('top',Y+5);
|
56
|
+
obj.show(function(){ $('#shadow').show(); });
|
57
|
+
}
|
58
|
+
});
|
59
|
+
*/
|
60
|
+
})
|
61
|
+
(jQuery);
|