mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	A selector like `$('.elem1 .elem2:first')` selects the first descendant
with class name `.elem2` under `.elem1`. This is the same as saying
`$('.elem1 .elem2').first()`. See example here:
https://jsbin.com/bohehesari/edit?html,js,output
		
	
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var common = require('../casper_lib/common.js').common;
 | 
						|
 | 
						|
common.start_and_log_in();
 | 
						|
 | 
						|
function then_edit_last_message() {
 | 
						|
    casper.then(function () {
 | 
						|
        casper.evaluate(function () {
 | 
						|
            var msg = $('#zhome .message_row').last();
 | 
						|
            msg.find('.info').click();
 | 
						|
            $('.popover_edit_message').click();
 | 
						|
        });
 | 
						|
    });
 | 
						|
    casper.then(function () {
 | 
						|
        casper.waitUntilVisible(".message_edit_content");
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
// Send and edit a stream message
 | 
						|
 | 
						|
common.then_send_message('stream', {
 | 
						|
    stream: 'Verona',
 | 
						|
    subject: 'edits',
 | 
						|
    content: 'test editing',
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitForSelectorText("#zhome .message_row", "test editing");
 | 
						|
});
 | 
						|
 | 
						|
common.wait_for_message_actually_sent();
 | 
						|
 | 
						|
then_edit_last_message();
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.evaluate(function () {
 | 
						|
        var msg = $('#zhome .message_row').last();
 | 
						|
        msg.find('.message_edit_topic').val("edited");
 | 
						|
        msg.find('.message_edit_content').val("test edited");
 | 
						|
        msg.find('.message_edit_save').click();
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.waitWhileVisible("textarea.message_edit_content", function () {
 | 
						|
    casper.test.assertSelectorHasText(".last_message .message_content", "test edited");
 | 
						|
});
 | 
						|
 | 
						|
common.then_send_message('stream', {
 | 
						|
    stream: 'Verona',
 | 
						|
    subject: 'edits',
 | 
						|
    content: '/me test editing one line with me',
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitForSelectorText("#zhome .message_row", "test editing one line with me");
 | 
						|
});
 | 
						|
 | 
						|
common.wait_for_message_actually_sent();
 | 
						|
 | 
						|
then_edit_last_message();
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.evaluate(function () {
 | 
						|
        var msg = $('#zhome .message_row').last();
 | 
						|
        msg.find('.message_edit_topic').val("edited");
 | 
						|
        msg.find('.message_edit_content').val("/me test edited one line with me");
 | 
						|
        msg.find('.message_edit_save').click();
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.waitWhileVisible("textarea.message_edit_content", function () {
 | 
						|
    casper.test.assertSelectorHasText(".last_message .sender-status", "test edited one line with me");
 | 
						|
});
 | 
						|
 | 
						|
common.then_send_message('private', {
 | 
						|
    recipient: "cordelia@zulip.com",
 | 
						|
    content: "test editing pm",
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitForSelectorText("#zhome .message_row", "test editing pm");
 | 
						|
});
 | 
						|
common.wait_for_message_actually_sent();
 | 
						|
then_edit_last_message();
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.evaluate(function () {
 | 
						|
        var msg = $('#zhome .message_row').last();
 | 
						|
        msg.find('.message_edit_content').val("test edited pm");
 | 
						|
        msg.find('.message_edit_save').click();
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitWhileVisible("textarea.message_edit_content", function () {
 | 
						|
        casper.test.assertSelectorHasText(".last_message .message_content", "test edited pm");
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
// test editing last own message
 | 
						|
// 37 is left arrow key code
 | 
						|
casper.then(function () {
 | 
						|
    casper.test.assertNotVisible('form.message_edit_form', 'Message edit box not visible');
 | 
						|
 | 
						|
    common.keypress(37);
 | 
						|
    casper.waitUntilVisible(".message_edit_content", function () {
 | 
						|
        var fieldVal = common.get_form_field_value('.message_edit_content');
 | 
						|
        casper.test.assertEquals(fieldVal, "test edited pm", "Opened editing last own message");
 | 
						|
        casper.click('.message_edit_cancel');
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitWhileVisible('.message_edit', function () {
 | 
						|
        casper.click('body');
 | 
						|
        casper.page.sendEvent('keypress', "c");
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitUntilVisible('#compose', function () {
 | 
						|
        casper.evaluate(function () {
 | 
						|
            $('#compose-textarea').expectOne().focus();
 | 
						|
            $('#compose-textarea').trigger($.Event('keydown', { which: 37 }));
 | 
						|
        });
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitUntilVisible(".message_edit_form", function () {
 | 
						|
        casper.echo("Opened editing last own message");
 | 
						|
        casper.click('.message_edit_cancel');
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitWhileVisible('.message_edit', function () {
 | 
						|
        casper.click('body');
 | 
						|
        casper.page.sendEvent('keypress', "c");
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.then(function () {
 | 
						|
    casper.waitUntilVisible('#compose', function () {
 | 
						|
        casper.evaluate(function () {
 | 
						|
            $('#compose-textarea').expectOne().focus().val('test');
 | 
						|
            $('#compose-textarea').trigger($.Event('keydown', { which: 37 }));
 | 
						|
        });
 | 
						|
        casper.test.assertNotVisible('form.message_edit_form', "Last own message edit doesn't open if the compose box not empty");
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
casper.run(function () {
 | 
						|
    casper.test.done();
 | 
						|
});
 |