FIX: Undo/redo delete/add page
Now we can undo adding or deleting worksheets
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
d866e283e9
commit
dc8bb6da21
@@ -16,6 +16,7 @@ mod test_paste_csv;
|
||||
mod test_rename_sheet;
|
||||
mod test_row_column;
|
||||
mod test_sheet_state;
|
||||
mod test_sheets_undo_redo;
|
||||
mod test_styles;
|
||||
mod test_to_from_bytes;
|
||||
mod test_undo_redo;
|
||||
|
||||
@@ -25,9 +25,6 @@ fn add_undo_redo() {
|
||||
assert_eq!(model.get_formatted_cell_value(2, 1, 1), Ok("6".to_string()));
|
||||
|
||||
model.delete_sheet(1).unwrap();
|
||||
|
||||
assert!(!model.can_undo());
|
||||
assert!(!model.can_redo());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
52
base/src/test/user_model/test_sheets_undo_redo.rs
Normal file
52
base/src/test/user_model/test_sheets_undo_redo.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
#![allow(clippy::unwrap_used)]
|
||||
|
||||
use crate::test::util::new_empty_model;
|
||||
use crate::UserModel;
|
||||
|
||||
#[test]
|
||||
fn basic_undo_redo() {
|
||||
let model = new_empty_model();
|
||||
let mut model = UserModel::from_model(model);
|
||||
assert_eq!(model.get_selected_sheet(), 0);
|
||||
|
||||
model.new_sheet().unwrap();
|
||||
assert_eq!(model.get_selected_sheet(), 1);
|
||||
model.undo().unwrap();
|
||||
assert_eq!(model.get_selected_sheet(), 0);
|
||||
{
|
||||
let props = model.get_worksheets_properties();
|
||||
assert_eq!(props.len(), 1);
|
||||
let view = model.get_selected_view();
|
||||
assert_eq!(view.sheet, 0);
|
||||
}
|
||||
|
||||
model.redo().unwrap();
|
||||
assert_eq!(model.get_selected_sheet(), 1);
|
||||
{
|
||||
let props = model.get_worksheets_properties();
|
||||
assert_eq!(props.len(), 2);
|
||||
let view = model.get_selected_view();
|
||||
|
||||
assert_eq!(view.sheet, 1);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn delete_undo() {
|
||||
let model = new_empty_model();
|
||||
let mut model = UserModel::from_model(model);
|
||||
assert_eq!(model.get_selected_sheet(), 0);
|
||||
|
||||
model.new_sheet().unwrap();
|
||||
assert_eq!(model.get_selected_sheet(), 1);
|
||||
model.set_user_input(1, 1, 1, "42").unwrap();
|
||||
model.set_user_input(1, 1, 2, "=A1*2").unwrap();
|
||||
model.delete_sheet(1).unwrap();
|
||||
|
||||
assert_eq!(model.get_selected_sheet(), 0);
|
||||
|
||||
model.undo().unwrap();
|
||||
assert_eq!(model.get_selected_sheet(), 1);
|
||||
model.redo().unwrap();
|
||||
assert_eq!(model.get_selected_sheet(), 0);
|
||||
}
|
||||
Reference in New Issue
Block a user