about summary refs log tree commit diff stats
path: root/src/plugins/api.h
Commit message (Expand)AuthorAgeFilesLines
* Add plugin get_barejid_from_roster functionDustin Lagoy2021-04-291-0/+1
* Change nick to name in api to match conventionDustin Lagoy2021-04-281-1/+1
* Add plugin prof_get_nick_from_roster functionDustin Lagoy2021-04-281-0/+1
* Apply coding styleMichael Vetter2020-07-071-69/+69
* Revert "Apply coding style"Michael Vetter2020-07-071-69/+69
* Apply coding styleMichael Vetter2020-07-071-69/+69
* Add vim modelineMichael Vetter2019-11-131-0/+1
* Update copyright to include 2019Michael Vetter2019-01-221-1/+1
* Update copyrightJames Booth2018-01-211-1/+1
* Update CopyrightJames Booth2017-01-281-1/+1
* Add chat and room show calls to plugins apiJames Booth2017-01-211-0/+8
* Allow room display properies to be set by pluginsJames Booth2017-01-201-0/+4
* Allow chat prefix char to be set by pluginsJames Booth2017-01-201-0/+4
* Add titlebar encryption text to plugins apiJames Booth2017-01-191-0/+3
* Add prof.encryption_reset to Plugins APIJames Booth2017-01-181-0/+2
* Add get_room_nick to plugins apiJames Booth2016-11-061-0/+2
* Allow filepath autocompletion in pluginsJames Booth2016-10-101-0/+1
* Remove disco features added by plugins on unloadJames Booth2016-08-111-1/+1
* Rename plugins settings functionsJames Booth2016-08-071-8/+8
* Return boolean on prof_settings_string_list_remove_all()James Booth2016-08-011-1/+1
* Add string lists settings to pluginsJames Booth2016-08-011-0/+4
* Free python_str_or_unicode_to_string resultsJames Booth2016-07-251-1/+1
* Make header defines consistentJames Booth2016-07-241-2/+2
* Update GPL link in headersJames Booth2016-07-241-1/+1
* Pass plugin name to all autocompleter functionsJames Booth2016-07-041-2/+2
* Free plugins commands on quitJames Booth2016-07-041-4/+4
* Add plugin name to win_create api callJames Booth2016-07-031-0/+1
* Pass plugin name to api layerJames Booth2016-06-301-3/+3
* Revert "WIP - Unload plugin commands"James Booth2016-06-301-1/+1
* WIP - Unload plugin commandsJames Booth2016-06-291-1/+1
* Plugins: Added prof_disco_add_feature()James Booth2016-04-301-0/+2
* Plugins: Added more muc hooksJames Booth2016-04-151-0/+2
* Plugins: Added completer_clearJames Booth2016-04-071-0/+1
* Plugins: Added completer_removeJames Booth2016-04-071-0/+1
* Plugins: Renamed register_ac->completer_addJames Booth2016-04-071-1/+2
* Plugins: Added basic incoming message functionJames Booth2016-03-291-0/+2
* Added integer settings for pluginsJames Booth2016-03-261-0/+2
* Added plugin string settingsJames Booth2016-03-261-0/+2
* Added boolean settings for pluginsJames Booth2016-03-251-0/+3
* Added prof_send_stanza to plugins APIJames Booth2016-03-231-0/+1
* Plugins: Added callbacks init and close functionsJames Booth2016-03-071-1/+4
* Added current_win_is_console to plugins apiJames Booth2016-02-281-0/+2
* Added theme support to pluginsJames Booth2016-02-211-4/+3
* Return result from plugin callsJames Booth2016-02-211-8/+8
* Added prof_cons_bad_cmd_usage plugin functionJames Booth2016-02-181-0/+1
* Added new help format to c plugins WIPJames Booth2016-02-181-1/+1
* Updated copyrightJames Booth2016-02-141-1/+1
* Added C plugin code from plugins branchJames Booth2016-02-141-0/+69
:40 +0100 committer James Booth <boothj5@gmail.com> 2012-05-18 01:33:40 +0100 Autocomplte uses default functions' href='/danisanti/profani-tty/commit/test_prof_autocomplete.c?id=eb5b04df46236d1633f012ef003e08a49b1f18c6'>eb5b04df ^
6bad38c2 ^
527e739a ^
eb5b04df ^

4be250ae ^



527e739a ^



4be250ae ^


527e739a ^
4be250ae ^

4be250ae ^



527e739a ^



4be250ae ^


527e739a ^
4be250ae ^

4be250ae ^



527e739a ^



4be250ae ^






527e739a ^
4be250ae ^

93795009 ^


527e739a ^

93795009 ^


527e739a ^
93795009 ^

93795009 ^



527e739a ^


93795009 ^



527e739a ^
93795009 ^

93795009 ^



527e739a ^


93795009 ^



527e739a ^
93795009 ^

527e739a ^
eb5b04df ^
527e739a ^
eb5b04df ^
eb5b04df ^


eb5b04df ^
eb5b04df ^
eb5b04df ^
4be250ae ^
4be250ae ^
4be250ae ^
93795009 ^
93795009 ^
93795009 ^
eb5b04df ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
                  

                   



                      
                         


                             

                                         

 

                                    


                                         



                                   


                                         



                                               

                                               


                           
                           

 

                                      
                                 


                                                    

                                          
 
                           

 

                                                    

                                  



                                                    

                                          
 
                           

 

                                                     

                                  




                                                       

                                          
 
                           

 



                                  



                                               


                                                 
                           

 



                                       



                                               


                                                 
                           

 



                                      



                                               






                                           
                           

 


                                      

                                            


                        
                           

 



                                                


                                              



                         
                           

 



                                            


                                              



                          
                           

 
                                      
 
                                      
                      


                                        
                               
                                             
                                              
                           
                                
                               
                               
                                         
                                     
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <head-unit.h>
#include <glib.h>

#include "contact.h"
#include "autocomplete.h"

static void clear_empty(void)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_clear(ac);
}

static void reset_after_create(void)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_reset(ac);
    autocomplete_clear(ac);
}

static void find_after_create(void)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_complete(ac, "hello");
    autocomplete_clear(ac);
}

static void get_after_create_returns_null(void)
{
    Autocomplete ac = autocomplete_new();
    GSList *result = autocomplete_get_list(ac);

    assert_is_null(result);

    autocomplete_clear(ac);
}

static void add_one_and_complete(void)
{
    char *item = strdup("Hello");
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, item);
    char *result = autocomplete_complete(ac, "Hel");

    assert_string_equals("Hello", result);

    autocomplete_clear(ac);
}

static void add_two_and_complete_returns_first(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Help");
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, item1);
    autocomplete_add(ac, item2);
    char *result = autocomplete_complete(ac, "Hel");

    assert_string_equals("Hello", result);

    autocomplete_clear(ac);
}

static void add_two_and_complete_returns_second(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Help");
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, item1);
    autocomplete_add(ac, item2);
    char *result1 = autocomplete_complete(ac, "Hel");
    char *result2 = autocomplete_complete(ac, result1);

    assert_string_equals("Help", result2);

    autocomplete_clear(ac);
}

static void add_two_adds_two(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Help");
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, item1);
    autocomplete_add(ac, item2);
    GSList *result = autocomplete_get_list(ac);

    assert_int_equals(2, g_slist_length(result));

    autocomplete_clear(ac);
}

static void add_two_same_adds_one(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Hello");
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, item1);
    autocomplete_add(ac, item2);
    GSList *result = autocomplete_get_list(ac);

    assert_int_equals(1, g_slist_length(result));

    autocomplete_clear(ac);
}

static void add_two_same_updates(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Hello");
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, item1);
    autocomplete_add(ac, item2);
    GSList *result = autocomplete_get_list(ac);

    GSList *first = g_slist_nth(result, 0);

    char *str = first->data;

    assert_string_equals("Hello", str);

    autocomplete_clear(ac);
}

static void add_one_returns_true(void)
{
    char *item = strdup("Hello");
    Autocomplete ac = autocomplete_new();
    int result = autocomplete_add(ac, item);

    assert_true(result);

    autocomplete_clear(ac);
}

static void add_two_different_returns_true(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Hello there");
    Autocomplete ac = autocomplete_new();
    int result1 = autocomplete_add(ac, item1);
    int result2 = autocomplete_add(ac, item2);

    assert_true(result1);
    assert_true(result2);

    autocomplete_clear(ac);
}

static void add_two_same_returns_false(void)
{
    char *item1 = strdup("Hello");
    char *item2 = strdup("Hello");
    Autocomplete ac = autocomplete_new();
    int result1 = autocomplete_add(ac, item1);
    int result2 = autocomplete_add(ac, item2);

    assert_true(result1);
    assert_false(result2);

    autocomplete_clear(ac);
}

void register_autocomplete_tests(void)
{
    TEST_MODULE("autocomplete tests");
    TEST(clear_empty);
    TEST(reset_after_create);
    TEST(find_after_create);
    TEST(get_after_create_returns_null);
    TEST(add_one_and_complete);
    TEST(add_two_and_complete_returns_first);
    TEST(add_two_and_complete_returns_second);
    TEST(add_two_adds_two);
    TEST(add_two_same_adds_one);
    TEST(add_two_same_updates);
    TEST(add_one_returns_true);
    TEST(add_two_different_returns_true);
    TEST(add_two_same_returns_false);
}