Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CODING_STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Almost everything in flipper firmware is built around this concept.
# C coding style

- Tab is 4 spaces
- Use `fbt format` to reformat source code and check style guide before commit
- Use `./fbt format` to reformat source code and check style guide before commit

## Naming

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include <dialog.h>

#include "../minunit.h"

MU_TEST(test_dialog_file_browser_set_basic_options_should_init_all_fields) {
Comment thread
skotopes marked this conversation as resolved.
DialogsFileBrowserOptions options;
// fill the structures with 'n's
memset(&options, 'n', sizeof(DialogsFileBrowserOptions));
// default-initialize the structure (omitting any 'n's in the parameters)
dialog_file_browser_set_basic_options(&options, ".fap", NULL);
// assert that no bytes remained set to 'n' after default-initialiaztion
mu_assert(
memchr(&options, 'n', sizeof(DialogsFileBrowserOptions)) == NULL,
"`options` contained an 'n' symbol although it should have been overwritten");
}

MU_TEST_SUITE(dialogs_file_browser_options) {
MU_RUN_TEST(test_dialog_file_browser_set_basic_options_should_init_all_fields);
}

int run_minunit_test_dialogs_file_browser_options() {
MU_RUN_SUITE(dialogs_file_browser_options);

return MU_EXIT_CODE;
}
3 changes: 3 additions & 0 deletions applications/debug/unit_tests/test_index.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ int run_minunit_test_nfc();
int run_minunit_test_bit_lib();
int run_minunit_test_float_tools();
int run_minunit_test_bt();
int run_minunit_test_dialogs_file_browser_options();

typedef int (*UnitTestEntry)();

Expand Down Expand Up @@ -55,6 +56,8 @@ const UnitTest unit_tests[] = {
{.name = "bit_lib", .entry = run_minunit_test_bit_lib},
{.name = "float_tools", .entry = run_minunit_test_float_tools},
{.name = "bt", .entry = run_minunit_test_bt},
{.name = "dialogs_file_browser_options",
.entry = run_minunit_test_dialogs_file_browser_options},
};

void minunit_print_progress() {
Expand Down
3 changes: 2 additions & 1 deletion applications/services/dialogs/dialogs.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@ void dialog_file_browser_set_basic_options(
const char* extension,
const Icon* icon) {
options->extension = extension;
options->base_path = NULL;
options->skip_assets = true;
options->hide_dot_files = true;
options->icon = icon;
options->hide_ext = true;
options->item_loader_callback = NULL;
options->item_loader_context = NULL;
options->base_path = NULL;
}

static DialogsApp* dialogs_app_alloc() {
Expand Down
9 changes: 6 additions & 3 deletions applications/services/dialogs/dialogs.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ typedef struct DialogsApp DialogsApp;
/****************** FILE BROWSER ******************/

/**
* File browser dialog extra options
* File browser dialog extra options.
* This can be default-initialized using {@link dialog_file_browser_set_basic_options}.
* @param extension file extension to be offered for selection
* @param base_path root folder path for navigation with back key
* @param skip_assets true - do not show assets folders
Expand All @@ -38,8 +39,10 @@ typedef struct {
} DialogsFileBrowserOptions;

/**
* Initialize file browser dialog options
* and set default values
* Initialize file browser dialog options and set default values.
* This is guaranteed to initialize all fields
* so it is safe to pass pointer to uninitialized {@code options}
* and assume that the data behind it becomes fully initialized after the call.
* @param options pointer to options structure
* @param extension file extension to filter
* @param icon file icon pointer, NULL for default icon
Expand Down