Added cucumber test for notifications dropdown
This commit is contained in:
parent
2b6ac9261b
commit
bd24d6bebe
4 changed files with 55 additions and 1 deletions
|
|
@ -46,6 +46,7 @@
|
|||
self.ajaxLoader.show();
|
||||
self.badge.addClass("active");
|
||||
self.dropdown.css("display", "block");
|
||||
$('.notifications').addClass("loading");
|
||||
self.getNotifications();
|
||||
|
||||
};
|
||||
|
|
@ -92,12 +93,14 @@
|
|||
$('.notifications').perfectScrollbar();
|
||||
self.ajaxLoader.hide();
|
||||
isLoading = false;
|
||||
$('.notifications').removeClass("loading");
|
||||
//Infinite Scrolling
|
||||
$('.notifications').scroll(function(e) {
|
||||
var bottom = $('.notifications').prop('scrollHeight') - $('.notifications').height();
|
||||
var currentPosition = $('.notifications').scrollTop();
|
||||
isLoading = ($('.loading').length == 1);
|
||||
if (currentPosition + 50 >= bottom && notificationsLoaded <= self.notifications.length && !isLoading) {
|
||||
isLoading = true;
|
||||
$('.notifications').addClass("loading");
|
||||
++currentPage;
|
||||
self.getMoreNotifications();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,3 +97,24 @@ Feature: Notifications
|
|||
And I active the first hovercard after loading the notifications page
|
||||
When I press the aspect dropdown
|
||||
Then the aspect dropdown should be visible
|
||||
|
||||
Scenario: scrollbar shows up when >5 notifications
|
||||
Given a user with email "bob@bob.bob" is connected with "alice@alice.alice"
|
||||
And Alice has 6 posts mentioning Bob
|
||||
When I sign in as "bob@bob.bob"
|
||||
And I follow "Notifications" in the header
|
||||
Then the notification dropdown should be visible
|
||||
Then the notification dropdown scrollbar should be visible
|
||||
|
||||
Scenario: dropdown will load more elements when bottom is reached
|
||||
Given a user with email "bob@bob.bob" is connected with "alice@alice.alice"
|
||||
And Alice has 20 posts mentioning Bob
|
||||
When I sign in as "bob@bob.bob"
|
||||
And I follow "Notifications" in the header
|
||||
Then the notification dropdown should be visible
|
||||
Then the notification dropdown scrollbar should be visible
|
||||
Then there should be 10 notifications loaded
|
||||
When I scroll down on the notifications dropdown
|
||||
Then I should have scrolled down on the notification dropdown
|
||||
And I wait for notifications to load
|
||||
Then there should be 15 notifications loaded
|
||||
|
|
@ -184,15 +184,36 @@ end
|
|||
And /^I scroll down$/ do
|
||||
page.execute_script("window.scrollBy(0,3000000)")
|
||||
end
|
||||
And /^I scroll down on the notifications dropdown$/ do
|
||||
page.execute_script("$('.notifications').scrollTop(350)")
|
||||
end
|
||||
|
||||
Then /^I should have scrolled down$/ do
|
||||
page.evaluate_script("window.pageYOffset").should > 0
|
||||
end
|
||||
|
||||
Then /^I should have scrolled down on the notification dropdown$/ do
|
||||
page.evaluate_script("$('.notifications').scrollTop()").should > 0
|
||||
end
|
||||
|
||||
|
||||
Then /^the notification dropdown should be visible$/ do
|
||||
find(:css, "#notification_dropdown").should be_visible
|
||||
end
|
||||
|
||||
Then /^the notification dropdown scrollbar should be visible$/ do
|
||||
find(:css, ".ps-active-y").should be_visible
|
||||
end
|
||||
|
||||
Then /^there should be (\d+) notifications loaded$/ do |n|
|
||||
result = page.evaluate_script("$('.notification_element').length")
|
||||
result.should == n.to_i
|
||||
end
|
||||
|
||||
And "I wait for notifications to load" do
|
||||
page.should_not have_selector(".loading")
|
||||
end
|
||||
|
||||
When /^I resize my window to 800x600$/ do
|
||||
page.execute_script <<-JS
|
||||
window.resizeTo(800,600);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,15 @@ And /^Alice has a post mentioning Bob$/ do
|
|||
alice.post(:status_message, :text => "@{Bob Jones; #{bob.person.diaspora_handle}}", :to => aspect)
|
||||
end
|
||||
|
||||
And /^Alice has (\d+) posts mentioning Bob$/ do |n|
|
||||
n.to_i.times do
|
||||
alice = User.find_by_email 'alice@alice.alice'
|
||||
bob = User.find_by_email 'bob@bob.bob'
|
||||
aspect = alice.aspects.where(:name => "Besties").first
|
||||
alice.post(:status_message, :text => "@{Bob Jones; #{bob.person.diaspora_handle}}", :to => aspect)
|
||||
end
|
||||
end
|
||||
|
||||
And /^I mention Alice in the publisher$/ do
|
||||
alice = User.find_by_email 'alice@alice.alice'
|
||||
write_in_publisher("@{Alice Smith ; #{alice.person.diaspora_handle}}")
|
||||
|
|
|
|||
Loading…
Reference in a new issue