equal(moment().add({d:5}).fromNow(), "in 5 days", "in 5 days");
});
+test("xxx", 14, function() {
+ var getTodayAtTwo, prefixDay;
+
+ getTodayAtTwo = function () {
+ return moment().hours(2).minutes(0).seconds(0);
+ };
+
+ prefixDay = function (moment, string, nextOrLast) {
+ if(typeof nextOrLast == "undefined") {
+ nextOrLast = '';
+ } else {
+ switch(nextOrLast) {
+ case 'next':
+ nextOrLast = "next ";
+ break;
+ case 'last':
+ nextOrLast = "last ";
+ break;
+ default:
+ nextOrLast = '';
+ }
+ }
+
+ return nextOrLast + moment.format('ddd') + string;
+ };
+
+ moment.lang('en');
+ equal(getTodayAtTwo().xxx(), "Today at 02:00", "today at the same time");
+ equal(getTodayAtTwo().add({ m: 25 }).xxx(), "Today at 02:25", "Now plus 25 min");
+ equal(getTodayAtTwo().add({ h: 1 }).xxx(), "Today at 03:00", "Now plus 1 hour");
+ equal(getTodayAtTwo().add({ d: 1 }).xxx(), "Tomorrow at 02:00", "tomorrow at the same time");
+ equal(getTodayAtTwo().subtract({ h: 1 }).xxx(), "Today at 01:00", "Now minus 1 hour");
+ equal(getTodayAtTwo().subtract({ d: 1 }).xxx(), "Yesterday at 02:00", "yesterday at the same time");
+
+ var nextTomorrow = getTodayAtTwo().add({ d: 2 });
+ equal(nextTomorrow.xxx(), prefixDay(nextTomorrow, " at 02:00"), "now - 2days at the same time");
+
+ var previousYesterday = getTodayAtTwo().subtract({ d: 2 });
+ equal(previousYesterday.xxx(), prefixDay(previousYesterday, " at 02:00"), "now - 2days yesterday at the same time");
+
+ // Next / Last week
+ equal(getTodayAtTwo().add({ w: 1 }).xxx(), prefixDay(getTodayAtTwo().add({ w: 1 }), "", "next"), "next week at the same time");
+ equal(getTodayAtTwo().add({ w: 1, d: 1 }).xxx(), prefixDay(getTodayAtTwo().add({ w: 1, d: 1 }), "", "next"), "next week at the same time");
+ equal(getTodayAtTwo().subtract({ w: 1 }).xxx(), prefixDay(getTodayAtTwo().add({ w: 1 }), "", "last"), "next week at the same time");
+ equal(getTodayAtTwo().subtract({ w: 1, d: 1 }).xxx(), prefixDay(getTodayAtTwo().add({ w: 1, d: 1 }), "", "last"), "next week at the same time");
+
+
+ // More than 2 weeks
+ equal(getTodayAtTwo().add({ w: 2 }).xxx(), getTodayAtTwo().add({ w: 2 }).format('L'), "in 2 weeks at the same time");
+ equal(getTodayAtTwo().subtract({ w: 2 }).xxx(), getTodayAtTwo().subtract({ w: 2 }).format('L'), "before 2 weeks at the same time");
+
+})