|
|
@@ -3,10 +3,11 @@ use users::{Users, Groups};
|
|
|
|
|
|
use crate::fs::fields as f;
|
|
|
use crate::output::cell::TextCell;
|
|
|
+use crate::output::table::UserFormat;
|
|
|
|
|
|
|
|
|
impl f::Group {
|
|
|
- pub fn render<C: Colours, U: Users+Groups>(self, colours: &C, users: &U) -> TextCell {
|
|
|
+ pub fn render<C: Colours, U: Users+Groups>(self, colours: &C, users: &U, format: UserFormat) -> TextCell {
|
|
|
use users::os::unix::GroupExt;
|
|
|
|
|
|
let mut style = colours.not_yours();
|
|
|
@@ -26,7 +27,12 @@ impl f::Group {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- TextCell::paint(style, group.name().to_string_lossy().into())
|
|
|
+ let group_name = match format {
|
|
|
+ UserFormat::Name => group.name().to_string_lossy().into(),
|
|
|
+ UserFormat::Numeric => group.gid().to_string(),
|
|
|
+ };
|
|
|
+
|
|
|
+ TextCell::paint(style, group_name)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -43,6 +49,7 @@ pub mod test {
|
|
|
use super::Colours;
|
|
|
use crate::fs::fields as f;
|
|
|
use crate::output::cell::TextCell;
|
|
|
+ use crate::output::table::UserFormat;
|
|
|
|
|
|
use users::{User, Group};
|
|
|
use users::mock::MockUsers;
|
|
|
@@ -66,16 +73,21 @@ pub mod test {
|
|
|
|
|
|
let group = f::Group(100);
|
|
|
let expected = TextCell::paint_str(Fixed(81).normal(), "folk");
|
|
|
- assert_eq!(expected, group.render(&TestColours, &users))
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &users, UserFormat::Name));
|
|
|
+
|
|
|
+ let expected = TextCell::paint_str(Fixed(81).normal(), "100");
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &users, UserFormat::Numeric));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
#[test]
|
|
|
fn unnamed() {
|
|
|
let users = MockUsers::with_current_uid(1000);
|
|
|
|
|
|
let group = f::Group(100);
|
|
|
let expected = TextCell::paint_str(Fixed(81).normal(), "100");
|
|
|
- assert_eq!(expected, group.render(&TestColours, &users));
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &users, UserFormat::Name));
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &users, UserFormat::Numeric));
|
|
|
}
|
|
|
|
|
|
#[test]
|
|
|
@@ -86,7 +98,7 @@ pub mod test {
|
|
|
|
|
|
let group = f::Group(100);
|
|
|
let expected = TextCell::paint_str(Fixed(80).normal(), "folk");
|
|
|
- assert_eq!(expected, group.render(&TestColours, &users))
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &users, UserFormat::Name))
|
|
|
}
|
|
|
|
|
|
#[test]
|
|
|
@@ -99,13 +111,13 @@ pub mod test {
|
|
|
|
|
|
let group = f::Group(100);
|
|
|
let expected = TextCell::paint_str(Fixed(80).normal(), "folk");
|
|
|
- assert_eq!(expected, group.render(&TestColours, &users))
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &users, UserFormat::Name))
|
|
|
}
|
|
|
|
|
|
#[test]
|
|
|
fn overflow() {
|
|
|
let group = f::Group(2_147_483_648);
|
|
|
let expected = TextCell::paint_str(Fixed(81).normal(), "2147483648");
|
|
|
- assert_eq!(expected, group.render(&TestColours, &MockUsers::with_current_uid(0)));
|
|
|
+ assert_eq!(expected, group.render(&TestColours, &MockUsers::with_current_uid(0), UserFormat::Numeric));
|
|
|
}
|
|
|
}
|