mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-30 19:43:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| zrequire('hash_util');
 | |
| zrequire('stream_data');
 | |
| zrequire('people');
 | |
| 
 | |
| var _window = {
 | |
|     location: {
 | |
|         protocol: "https:",
 | |
|         host: "example.com",
 | |
|         pathname: "/",
 | |
|     },
 | |
| };
 | |
| 
 | |
| global.patch_builtin('window', _window);
 | |
| 
 | |
| var hamlet = {
 | |
|     user_id: 1,
 | |
|     email: 'hamlet@example.com',
 | |
|     full_name: 'Hamlet',
 | |
| };
 | |
| 
 | |
| people.add_in_realm(hamlet);
 | |
| 
 | |
| var sub = {
 | |
|     stream_id: 99,
 | |
|     name: 'frontend',
 | |
| };
 | |
| 
 | |
| stream_data.add_sub(sub.name, sub);
 | |
| 
 | |
| run_test('hash_util', () => {
 | |
|     // Test encodeHashComponent
 | |
|     var str = 'https://www.zulipexample.com';
 | |
|     var result1 = hash_util.encodeHashComponent(str);
 | |
|     assert.equal(result1, 'https.3A.2F.2Fwww.2Ezulipexample.2Ecom');
 | |
| 
 | |
|     // Test decodeHashComponent
 | |
|     var result2 = hash_util.decodeHashComponent(result1);
 | |
|     assert.equal(result2, str);
 | |
| 
 | |
|     // Test encode_operand and decode_operand
 | |
| 
 | |
|     function encode_decode_operand(operator, operand, expected_val) {
 | |
|         var encode_result = hash_util.encode_operand(operator, operand);
 | |
|         assert.equal(encode_result, expected_val);
 | |
|         var new_operand = encode_result;
 | |
|         var decode_result = hash_util.decode_operand(operator, new_operand);
 | |
|         assert.equal(decode_result, operand);
 | |
|     }
 | |
| 
 | |
|     var operator = 'sender';
 | |
|     var operand = hamlet.email;
 | |
| 
 | |
|     encode_decode_operand(operator, operand, '1-hamlet');
 | |
| 
 | |
|     operator = 'stream';
 | |
|     operand = 'frontend';
 | |
| 
 | |
|     encode_decode_operand(operator, operand, '99-frontend');
 | |
| 
 | |
|     operator = 'topic';
 | |
|     operand = 'testing 123';
 | |
| 
 | |
|     encode_decode_operand(operator, operand, 'testing.20123');
 | |
| });
 | |
| 
 | |
| run_test('test_by_conversation_and_time_uri', () => {
 | |
|     var message = {
 | |
|         type: 'stream',
 | |
|         stream: 'frontend',
 | |
|         subject: 'testing',
 | |
|         id: 42,
 | |
|     };
 | |
| 
 | |
|     assert.equal(hash_util.by_conversation_and_time_uri(message),
 | |
|                  'https://example.com/#narrow/stream/99-frontend/subject/testing/near/42');
 | |
| 
 | |
|     message = {
 | |
|         type: 'private',
 | |
|         reply_to: 'iago@example.com,hamlet@example.com',
 | |
|         id: 43,
 | |
|     };
 | |
| 
 | |
|     people.my_current_email = () => 'jeff@example.com';
 | |
| 
 | |
|     assert.equal(hash_util.by_conversation_and_time_uri(message),
 | |
|                  'https://example.com/#narrow/pm-with/iago.40example.2Ecom.2Chamlet.40example.2Ecom.2Cjeff.40example.2Ecom/near/43');
 | |
| });
 |